From 17443b4fbfded1cab7202de7fe1d2886ae37fd63 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Fri, 2 Jun 2023 08:38:17 -0600 Subject: [PATCH] logging: Add milliseconds to log file name --- CHANGELOG.md | 2 +- resources/global_settings.py | 5 +++-- resources/logging_handler.py | 21 +++++++++++++++++---- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b7a5bcb9..97549ed14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ - Implement formatted logging - Allowing easier debugging - Implement per-version, per-run file logging - - ex. OpenCore-Patcher (0.6.7) (2021-12-31-12-34-56).log + - ex. OpenCore-Patcher (0.6.7) (2021-12-31-12-34-56-666903).log - Keep only 10 latest log files - Reveal log file in Finder on main thread crash - Avoid writing username to log file diff --git a/resources/global_settings.py b/resources/global_settings.py index 0cb4645a1..41ec38f0c 100644 --- a/resources/global_settings.py +++ b/resources/global_settings.py @@ -82,8 +82,9 @@ class GlobalEnviromentSettings: # delete defaults plist try: Path(defaults_path).unlink() - except PermissionError: - logging.info("Permission error: Unable to delete defaults plist") + except Exception as e: + logging.error("Error: Unable to delete defaults plist") + logging.error(e) def _fix_file_permission(self) -> None: diff --git a/resources/logging_handler.py b/resources/logging_handler.py index 88bed6e20..441955728 100644 --- a/resources/logging_handler.py +++ b/resources/logging_handler.py @@ -1,6 +1,5 @@ import os import sys -import time import pprint import logging import threading @@ -9,8 +8,9 @@ import subprocess import applescript from pathlib import Path +from datetime import datetime -from resources import constants, analytics_handler +from resources import constants, analytics_handler, global_settings class InitializeLoggingSupport: @@ -36,7 +36,9 @@ class InitializeLoggingSupport: def __init__(self, global_constants: constants.Constants) -> None: self.constants: constants.Constants = global_constants - self.log_filename: str = f"OpenCore-Patcher_{self.constants.patcher_version}_{time.strftime('%Y-%m-%d_%H-%M-%S')}.log" + log_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S-%f") + + self.log_filename: str = f"OpenCore-Patcher_{self.constants.patcher_version}_{log_time}.log" self.log_filepath: Path = None self.original_excepthook: sys = sys.excepthook @@ -220,7 +222,14 @@ class InitializeLoggingSupport: error_msg += f"{type.__name__}: {value}" if tb: error_msg += f"\n\n{traceback.extract_tb(tb)[-1]}" - error_msg += "\n\nSend crash report to Dortania?" + + cant_log: bool = global_settings.GlobalEnviromentSettings().read_property("DisableCrashAndAnalyticsReporting") + + + if cant_log is True: + error_msg += "\n\nReveal log file?" + else: + error_msg += "\n\nSend crash report to Dortania?" # Ask user if they want to send crash report try: @@ -232,6 +241,10 @@ class InitializeLoggingSupport: if result[applescript.AEType(b'bhit')] != "Yes": return + if cant_log is True: + subprocess.run(["open", "--reveal", self.log_filepath]) + return + threading.Thread(target=analytics_handler.Analytics(self.constants).send_crash_report, args=(self.log_filepath,)).start()