From 04995f193407ff18bb98c57f7accb697a8407b04 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Wed, 2 Oct 2024 22:38:10 -0400 Subject: [PATCH] feat: InterceptHandler with diagnose and backtrace --- joint_teapot/utils/logger.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/joint_teapot/utils/logger.py b/joint_teapot/utils/logger.py index a74c835..36389d6 100644 --- a/joint_teapot/utils/logger.py +++ b/joint_teapot/utils/logger.py @@ -11,6 +11,11 @@ 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, diagnose: bool = True, backtrace: bool = True): + super().__init__() + self.diagnose = diagnose + self.backtrace = backtrace + def emit(self, record: logging.LogRecord) -> None: try: level = logger.level(record.levelname).name @@ -25,7 +30,7 @@ class InterceptHandler(logging.Handler): depth += 1 logger.opt(depth=depth, exception=record.exc_info).log( - level, record.getMessage() + level, record.getMessage(), diagnose=self.diagnose, backtrace=self.backtrace ) @@ -35,7 +40,9 @@ def set_logger( diagnose: bool = True, backtrace: bool = True, ) -> None: - logging.basicConfig(handlers=[InterceptHandler()], level=0, force=True) + logging.basicConfig( + handlers=[InterceptHandler(diagnose, backtrace)], level=0, force=True + ) logger.remove() logger.add( stderr,