feat: InterceptHandler with diagnose and backtrace
This commit is contained in:
parent
cae195a4b5
commit
04995f1934
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue
Block a user