mirror of
https://github.com/tiqi-group/pydase_service_base.git
synced 2025-06-16 08:47:12 +02:00
Adding logging module
This commit is contained in:
26
icon_service_base/logging/LoguruInterceptHandler.py
Normal file
26
icon_service_base/logging/LoguruInterceptHandler.py
Normal file
@ -0,0 +1,26 @@
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
from loguru import logger
|
||||
|
||||
|
||||
# from: https://github.com/Delgan/loguru section
|
||||
# "Entirely compatible with standard logging"
|
||||
class LoguruInterceptHandler(logging.Handler):
|
||||
def emit(self, record: Any) -> None:
|
||||
# Get corresponding Loguru level if it exists
|
||||
try:
|
||||
level = logger.level(record.levelname).name
|
||||
except ValueError:
|
||||
level = record.levelno
|
||||
|
||||
# Find caller from where originated the logged message
|
||||
frame = logging.currentframe()
|
||||
depth = 2
|
||||
while 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()
|
||||
)
|
Reference in New Issue
Block a user