| 226 | |
| 227 | # Intercept default logging and transform to loguru |
| 228 | class InterceptHandler(logging.Handler): |
| 229 | def emit(self, record: logging.LogRecord) -> None: |
| 230 | # Get corresponding Loguru level if it exists. |
| 231 | level: str | int |
| 232 | try: |
| 233 | level = logger.level(record.levelname).name |
| 234 | except ValueError: |
| 235 | level = record.levelno |
| 236 | |
| 237 | # Find caller from where originated the logged message. |
| 238 | frame, depth = inspect.currentframe(), 0 |
| 239 | while frame and (depth == 0 or frame.f_code.co_filename == logging.__file__): |
| 240 | frame = frame.f_back |
| 241 | depth += 1 |
| 242 | |
| 243 | logger.opt(depth=depth, exception=record.exc_info).log(level, record.getMessage()) |
| 244 | |
| 245 | logging.basicConfig(handlers=[InterceptHandler()], level=log_level, force=True) |
| 246 | datasets.utils.logging.set_verbosity(datasets.logging.WARNING) |