Spaces:
Runtime error
Runtime error
from __future__ import annotations | |
import logging | |
from typing import Final | |
from colorama import Fore, Style, init as colorama_init | |
__all__: Final[list[str]] = ["get_logger"] | |
class _ColourFormatter(logging.Formatter): | |
_COLOUR_FOR_LEVEL = { | |
logging.DEBUG: Fore.CYAN, | |
logging.INFO: Fore.GREEN, | |
logging.WARNING: Fore.YELLOW, | |
logging.ERROR: Fore.RED, | |
logging.CRITICAL: Fore.MAGENTA, | |
} | |
def format(self, record: logging.LogRecord) -> str: # noqa: D401 | |
colour = self._COLOUR_FOR_LEVEL.get(record.levelno, "") | |
return f"{colour}{super().format(record)}{Style.RESET_ALL}" | |
def get_logger(name: str | None = None, level: int = logging.INFO) -> logging.Logger: | |
colorama_init() | |
handler = logging.StreamHandler() | |
handler.setFormatter(_ColourFormatter("%(asctime)s [%(levelname)s] %(name)s: %(message)s")) | |
logger = logging.getLogger(name) | |
logger.setLevel(level) | |
logger.handlers.clear() | |
logger.addHandler(handler) | |
return logger | |