feat: add configurable logging toggle to settings and implement dynamic log level management
This commit is contained in:
@@ -16,8 +16,16 @@ import logging
|
|||||||
from ctypes import wintypes
|
from ctypes import wintypes
|
||||||
|
|
||||||
# --- LOGGING & KONSTANTER ---
|
# --- 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")
|
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
|
CHUNK_SIZE = 1 * 1024 * 1024 # 1MB
|
||||||
ENABLE_HASH_VALIDATION = True
|
ENABLE_HASH_VALIDATION = True
|
||||||
@@ -48,6 +56,7 @@ def load_settings():
|
|||||||
"language": "da", # da eller en
|
"language": "da", # da eller en
|
||||||
"favorites": [], # Liste over {id, name, type, drive_id, site_id, path}
|
"favorites": [], # Liste over {id, name, type, drive_id, site_id, path}
|
||||||
"fav_visible": True,
|
"fav_visible": True,
|
||||||
|
"logging_enabled": True,
|
||||||
"license_key": ""
|
"license_key": ""
|
||||||
}
|
}
|
||||||
if not os.path.exists(SETTINGS_FILE):
|
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"]
|
SCOPES = ["Files.ReadWrite.All", "Sites.Read.All", "User.Read"]
|
||||||
TEMP_DIR = settings.get("temp_dir", "C:\\Temp_SP")
|
TEMP_DIR = settings.get("temp_dir", "C:\\Temp_SP")
|
||||||
CURRENT_LANG = settings.get("language", "da")
|
CURRENT_LANG = settings.get("language", "da")
|
||||||
|
# Opdater logging baseret på gemte indstillinger
|
||||||
|
setup_logging(settings.get("logging_enabled", True))
|
||||||
|
|
||||||
# --- TRANSLATIONS ---
|
# --- TRANSLATIONS ---
|
||||||
STRINGS = {
|
STRINGS = {
|
||||||
@@ -165,7 +176,9 @@ STRINGS = {
|
|||||||
"msg_fav_exists": "'{name}' er allerede i favoritter.",
|
"msg_fav_exists": "'{name}' er allerede i favoritter.",
|
||||||
"settings_license_group": "Licens / Aktivering",
|
"settings_license_group": "Licens / Aktivering",
|
||||||
"settings_license_key": "Licensnøgle:",
|
"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": {
|
"en": {
|
||||||
"title": "SharePoint Explorer",
|
"title": "SharePoint Explorer",
|
||||||
@@ -257,7 +270,9 @@ STRINGS = {
|
|||||||
"msg_fav_exists": "'{name}' is already in favorites.",
|
"msg_fav_exists": "'{name}' is already in favorites.",
|
||||||
"settings_license_group": "License / Activation",
|
"settings_license_group": "License / Activation",
|
||||||
"settings_license_key": "License Key:",
|
"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)
|
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)
|
panel.SetSizer(inner_vbox)
|
||||||
inner_vbox.Fit(panel)
|
inner_vbox.Fit(panel)
|
||||||
vbox.Add(panel, 1, wx.EXPAND | wx.ALL, 0)
|
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["temp_dir"] = self.temp_dir_picker.GetPath()
|
||||||
self.settings["language"] = "da" if self.lang_choice.GetSelection() == 0 else "en"
|
self.settings["language"] = "da" if self.lang_choice.GetSelection() == 0 else "en"
|
||||||
self.settings["license_key"] = self.license_ctrl.GetValue().strip()
|
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"]:
|
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)
|
wx.MessageBox("Client ID og Tenant ID skal udfyldes.", "Fejl", wx.OK | wx.ICON_ERROR)
|
||||||
|
|||||||
Reference in New Issue
Block a user