diff --git a/joint_teapot/utils/logger.py b/joint_teapot/utils/logger.py index 644bc16..36389d6 100644 --- a/joint_teapot/utils/logger.py +++ b/joint_teapot/utils/logger.py @@ -11,8 +11,9 @@ from joint_teapot.config import settings # recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging class InterceptHandler(logging.Handler): - def __init__(self, backtrace: bool = True): + def __init__(self, diagnose: bool = True, backtrace: bool = True): super().__init__() + self.diagnose = diagnose self.backtrace = backtrace def emit(self, record: logging.LogRecord) -> None: @@ -21,16 +22,16 @@ class InterceptHandler(logging.Handler): except ValueError: level = record.levelno - logger_opt = logger.opt(depth=0) - if self.backtrace: - # Find caller from where originated the logged message - frame: Optional[FrameType] = sys._getframe(6) - depth = 6 - while frame and frame.f_code.co_filename == logging.__file__: - frame = frame.f_back - depth += 1 - logger_opt = logger.opt(depth=depth, exception=record.exc_info) - logger_opt.log(level, record.getMessage()) + # Find caller from where originated the logged message + frame: Optional[FrameType] = sys._getframe(6) + depth = 6 + while frame and frame.f_code.co_filename == logging.__file__: + frame = frame.f_back + depth += 1 + + logger.opt(depth=depth, exception=record.exc_info).log( + level, record.getMessage(), diagnose=self.diagnose, backtrace=self.backtrace + ) def set_logger( @@ -39,7 +40,9 @@ def set_logger( diagnose: bool = True, backtrace: bool = True, ) -> None: - logging.basicConfig(handlers=[InterceptHandler(backtrace)], level=0, force=True) + logging.basicConfig( + handlers=[InterceptHandler(diagnose, backtrace)], level=0, force=True + ) logger.remove() logger.add( stderr,