From 04995f193407ff18bb98c57f7accb697a8407b04 Mon Sep 17 00:00:00 2001
From: BoYanZh <boyanzh233@gmail.com>
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,