Improve Logging

This commit is contained in:
Yusarina
2025-02-01 15:41:06 +00:00
parent d7cc8096b9
commit 1187949280
+10 -1
View File
@@ -1,4 +1,5 @@
import logging import logging
import traceback
from typing import Optional, Any from typing import Optional, Any
from bpy.types import Context from bpy.types import Context
@@ -15,10 +16,18 @@ def configure_logging(enabled: bool = False) -> None:
if enabled: if enabled:
handler = logging.StreamHandler() handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG) handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s\n%(exc_info)s' if enabled else '%(message)s')
handler.setFormatter(formatter) handler.setFormatter(formatter)
logger.addHandler(handler) logger.addHandler(handler)
# Override error logging to include traceback
def error_with_traceback(msg, *args, **kwargs):
if kwargs.get('exc_info', False):
msg = f"{msg}\n{traceback.format_exc()}"
logger.error(msg, *args, **kwargs)
logger.error = error_with_traceback
def update_logging_state(self: Any, context: Context) -> None: def update_logging_state(self: Any, context: Context) -> None:
"""Update logging state based on user preference""" """Update logging state based on user preference"""
from .addon_preferences import save_preference from .addon_preferences import save_preference