diff --git a/sharepoint_browser.py b/sharepoint_browser.py index 9b7084a..fdefead 100644 --- a/sharepoint_browser.py +++ b/sharepoint_browser.py @@ -16,8 +16,16 @@ import logging from ctypes import wintypes # --- LOGGING & KONSTANTER --- -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +def setup_logging(enabled=True): + level = logging.INFO if enabled else logging.CRITICAL + # Fjern eksisterende handlers hvis vi kalder den igen + for handler in logging.root.handlers[:]: + logging.root.removeHandler(handler) + logging.basicConfig(level=level, format='%(asctime)s - %(levelname)s - %(message)s') + logger = logging.getLogger("SP_Browser") +# Initial setup (INFO) - vil blive opdateret efter settings er indlæst +setup_logging(True) CHUNK_SIZE = 1 * 1024 * 1024 # 1MB ENABLE_HASH_VALIDATION = True @@ -48,6 +56,7 @@ def load_settings(): "language": "da", # da eller en "favorites": [], # Liste over {id, name, type, drive_id, site_id, path} "fav_visible": True, + "logging_enabled": True, "license_key": "" } if not os.path.exists(SETTINGS_FILE): @@ -72,6 +81,8 @@ AUTHORITY = f"https://login.microsoftonline.com/{TENANT_ID}" SCOPES = ["Files.ReadWrite.All", "Sites.Read.All", "User.Read"] TEMP_DIR = settings.get("temp_dir", "C:\\Temp_SP") CURRENT_LANG = settings.get("language", "da") +# Opdater logging baseret på gemte indstillinger +setup_logging(settings.get("logging_enabled", True)) # --- TRANSLATIONS --- STRINGS = { @@ -165,7 +176,9 @@ STRINGS = { "msg_fav_exists": "'{name}' er allerede i favoritter.", "settings_license_group": "Licens / Aktivering", "settings_license_key": "Licensnøgle:", - "settings_license_status": "Status: Ikke aktiveret" + "settings_license_status": "Status: Ikke aktiveret", + "settings_logging_group": "System / Diverse", + "settings_logging": "Aktiver log-output (anbefales til fejlfinding)" }, "en": { "title": "SharePoint Explorer", @@ -257,7 +270,9 @@ STRINGS = { "msg_fav_exists": "'{name}' is already in favorites.", "settings_license_group": "License / Activation", "settings_license_key": "License Key:", - "settings_license_status": "Status: Not activated" + "settings_license_status": "Status: Not activated", + "settings_logging_group": "System / Miscellaneous", + "settings_logging": "Enable log output (recommended for troubleshooting)" } } @@ -467,6 +482,16 @@ class SettingsDialog(wx.Dialog): inner_vbox.Add(lang_sizer, 0, wx.EXPAND | wx.ALL, 10) + # --- Group: Miscellaneous --- + misc_box = wx.StaticBox(panel, label=self.get_txt("settings_logging_group")) + misc_sizer = wx.StaticBoxSizer(misc_box, wx.VERTICAL) + + self.logging_cb = wx.CheckBox(panel, label=self.get_txt("settings_logging")) + self.logging_cb.SetValue(self.settings.get("logging_enabled", True)) + misc_sizer.Add(self.logging_cb, 0, wx.ALL, 10) + + inner_vbox.Add(misc_sizer, 0, wx.EXPAND | wx.ALL, 10) + panel.SetSizer(inner_vbox) inner_vbox.Fit(panel) vbox.Add(panel, 1, wx.EXPAND | wx.ALL, 0) @@ -496,6 +521,10 @@ class SettingsDialog(wx.Dialog): self.settings["temp_dir"] = self.temp_dir_picker.GetPath() self.settings["language"] = "da" if self.lang_choice.GetSelection() == 0 else "en" self.settings["license_key"] = self.license_ctrl.GetValue().strip() + self.settings["logging_enabled"] = self.logging_cb.GetValue() + + # Anvend logning med det samme + setup_logging(self.settings["logging_enabled"]) if not self.settings["client_id"] or not self.settings["tenant_id"]: wx.MessageBox("Client ID og Tenant ID skal udfyldes.", "Fejl", wx.OK | wx.ICON_ERROR)