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
|
||||
|
||||
# --- 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)
|
||||
|
||||
Reference in New Issue
Block a user