Spaces:
Runtime error
Runtime error
File size: 1,020 Bytes
0e02b97 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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
|