great-ai/great_ai/utilities/logger/custom_formatter.py
2022-07-04 19:31:15 +02:00

21 lines
724 B
Python

import logging
from .colors import BLUE, BOLD_RED, GREY, RED, RESET, YELLOW
class CustomFormatter(logging.Formatter):
def __init__(self, fmt: str):
super().__init__()
self._fmt = fmt
self._color_mapping = {
logging.DEBUG: GREY + self._fmt + RESET,
logging.INFO: BLUE + self._fmt + RESET,
logging.WARNING: YELLOW + self._fmt + RESET,
logging.ERROR: RED + self._fmt + RESET,
logging.CRITICAL: BOLD_RED + self._fmt + RESET,
}
def format(self, record: logging.LogRecord) -> str:
log_fmt = self._color_mapping.get(record.levelno)
formatter = logging.Formatter(log_fmt)
return formatter.format(record)