feat: InterceptHandler with no depth on no backtrace
This commit is contained in:
parent
04995f1934
commit
fdfebc87d8
|
@ -11,9 +11,8 @@ from joint_teapot.config import settings
|
||||||
|
|
||||||
# recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging
|
# recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging
|
||||||
class InterceptHandler(logging.Handler):
|
class InterceptHandler(logging.Handler):
|
||||||
def __init__(self, diagnose: bool = True, backtrace: bool = True):
|
def __init__(self, backtrace: bool = True):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.diagnose = diagnose
|
|
||||||
self.backtrace = backtrace
|
self.backtrace = backtrace
|
||||||
|
|
||||||
def emit(self, record: logging.LogRecord) -> None:
|
def emit(self, record: logging.LogRecord) -> None:
|
||||||
|
@ -22,16 +21,16 @@ class InterceptHandler(logging.Handler):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
level = record.levelno
|
level = record.levelno
|
||||||
|
|
||||||
# Find caller from where originated the logged message
|
logger_opt = logger.opt(depth=0)
|
||||||
frame: Optional[FrameType] = sys._getframe(6)
|
if self.backtrace:
|
||||||
depth = 6
|
# Find caller from where originated the logged message
|
||||||
while frame and frame.f_code.co_filename == logging.__file__:
|
frame: Optional[FrameType] = sys._getframe(6)
|
||||||
frame = frame.f_back
|
depth = 6
|
||||||
depth += 1
|
while frame and frame.f_code.co_filename == logging.__file__:
|
||||||
|
frame = frame.f_back
|
||||||
logger.opt(depth=depth, exception=record.exc_info).log(
|
depth += 1
|
||||||
level, record.getMessage(), diagnose=self.diagnose, backtrace=self.backtrace
|
logger_opt = logger.opt(depth=depth, exception=record.exc_info)
|
||||||
)
|
logger_opt.log(level, record.getMessage())
|
||||||
|
|
||||||
|
|
||||||
def set_logger(
|
def set_logger(
|
||||||
|
@ -40,9 +39,7 @@ def set_logger(
|
||||||
diagnose: bool = True,
|
diagnose: bool = True,
|
||||||
backtrace: bool = True,
|
backtrace: bool = True,
|
||||||
) -> None:
|
) -> None:
|
||||||
logging.basicConfig(
|
logging.basicConfig(handlers=[InterceptHandler(backtrace)], level=0, force=True)
|
||||||
handlers=[InterceptHandler(diagnose, backtrace)], level=0, force=True
|
|
||||||
)
|
|
||||||
logger.remove()
|
logger.remove()
|
||||||
logger.add(
|
logger.add(
|
||||||
stderr,
|
stderr,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user