From bf6a32febbfdf53edf0d0cb820ed83e19209d9c0 Mon Sep 17 00:00:00 2001 From: Yusarina Date: Fri, 7 Feb 2025 18:31:04 +0000 Subject: [PATCH] Went into wrong branch, whoops This went into the current branch as it was approved I just going to directly add into Alpha 2. --- core/logging_setup.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/logging_setup.py b/core/logging_setup.py index 37aab50..6769c2e 100644 --- a/core/logging_setup.py +++ b/core/logging_setup.py @@ -1,8 +1,10 @@ import logging +import traceback from typing import Optional, Any from bpy.types import Context logger = logging.getLogger('avatar_toolkit') +_original_error = logger.error def configure_logging(enabled: bool = False) -> None: """Configure logging for Avatar Toolkit""" @@ -18,6 +20,15 @@ def configure_logging(enabled: bool = False) -> None: formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) + + def error_with_traceback(msg, *args, **kwargs): + if kwargs.get('exc_info', False) or isinstance(msg, Exception): + full_msg = f"{msg}\n{traceback.format_exc()}" + _original_error(full_msg, *args, **{**kwargs, 'exc_info': False}) + else: + _original_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"""