| 54 | |
| 55 | |
| 56 | def get_logger(name: str, level: Union[int, str] = logging.NOTSET) -> logging.Logger: |
| 57 | log_level: Union[int, str] = level |
| 58 | if log_level == logging.NOTSET: |
| 59 | log_level = DEFAULTS["logging"]["level"] |
| 60 | logger = logging.getLogger(name) |
| 61 | logger.setLevel(log_level) |
| 62 | handler = logging.StreamHandler() |
| 63 | handler.setLevel(log_level) |
| 64 | fmt = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") |
| 65 | handler.setFormatter(fmt) |
| 66 | logger.handlers.clear() |
| 67 | logger.addHandler(handler) |
| 68 | logger.propagate = False |
| 69 | |
| 70 | return logger |
| 71 | |
| 72 | |
| 73 | logger = get_logger(__name__) |