From 11879492800e9dfcb0087badecc25100743ddb35 Mon Sep 17 00:00:00 2001 From: Yusarina Date: Sat, 1 Feb 2025 15:41:06 +0000 Subject: [PATCH] Improve Logging --- core/logging_setup.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/logging_setup.py b/core/logging_setup.py index 37aab50..2f65ce7 100644 --- a/core/logging_setup.py +++ b/core/logging_setup.py @@ -1,4 +1,5 @@ import logging +import traceback from typing import Optional, Any from bpy.types import Context @@ -15,9 +16,17 @@ def configure_logging(enabled: bool = False) -> None: if enabled: handler = logging.StreamHandler() 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) 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: """Update logging state based on user preference"""