Spaces:
Build error
Build error
| import logging | |
| import inspect | |
| import sys | |
| from pathlib import Path | |
| log_format = "[%(asctime)-12s-%(levelname)s] (%(name)s) %(message)s" | |
| def get_logger(logger_name: str = None, log_level: str = 'info') -> logging.Logger: | |
| # Set up levels | |
| log_levels = logging._nameToLevel | |
| log_level = log_levels[log_level.upper()] | |
| # Set up logger format | |
| logger_name = logger_name or Path(inspect.getmodule(inspect.stack()[1][0]).__file__).name | |
| logger = logging.getLogger(logger_name.rstrip('.py')) | |
| logger.setLevel(log_level) | |
| formatter = logging.Formatter(fmt = log_format) | |
| handler = logging.StreamHandler(sys.stdout) | |
| handler.setFormatter(formatter) | |
| # Set up exception hook | |
| if logger_name == 'main': | |
| def exception_hook(*args): | |
| gettrace = getattr(sys, 'gettrace', None) | |
| if not gettrace(): | |
| logger.error('Uncaught exception:') | |
| logger.exception(args[-1], exc_info=args) | |
| sys.excepthook = exception_hook | |
| # Add handler to logger | |
| logger.addHandler(handler) | |
| logger.info(f"Created {logger = }") | |
| return logger |