21 lines
724 B
Python
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)
|