| 314 | |
| 315 | # Intercept default logging and transform to loguru |
| 316 | class InterceptHandler(logging.Handler): |
| 317 | def emit(self, record: logging.LogRecord) -> None: |
| 318 | # Get corresponding Loguru level if it exists. |
| 319 | level: str | int |
| 320 | try: |
| 321 | level = logger.level(record.levelname).name |
| 322 | except ValueError: |
| 323 | level = record.levelno |
| 324 | |
| 325 | # Find caller from where originated the logged message. |
| 326 | frame, depth = inspect.currentframe(), 0 |
| 327 | while frame and (depth == 0 or frame.f_code.co_filename == logging.__file__): |
| 328 | frame = frame.f_back |
| 329 | depth += 1 |
| 330 | |
| 331 | logger.opt(depth=depth, exception=record.exc_info).log(level, record.getMessage()) |
| 332 | |
| 333 | logging.basicConfig(handlers=[InterceptHandler()], level=log_level, force=True) |
| 334 | transformers.utils.logging.disable_default_handler() |