Spaces:
Building
Building
import os, sys | |
sys.path.append(os.path.dirname(os.path.realpath(__file__))) | |
import logging | |
from dataclasses import dataclass | |
class Colors: | |
grey: str = "\x1b[38;20m" | |
blue: str = "\x1b[34;20m" | |
bold_blue: str = "\x1b[34;1m" | |
yellow: str = "\x1b[33;20m" | |
red: str = "\x1b[31;20m" | |
bold_red: str = "\x1b[31;1m" | |
reset: str = "\x1b[0m" | |
class ColorFormatter(logging.Formatter): | |
colors = Colors() | |
format = "[%(asctime)s %(name)s %(levelname)s] %(message)s" | |
datefmt="%Y-%m-%d %H:%M:%S" | |
FORMATS = { | |
logging.DEBUG: colors.grey + format + colors.reset, | |
logging.INFO: colors.grey + format + colors.reset, | |
logging.WARNING: colors.yellow + format + colors.reset, | |
logging.ERROR: colors.red + format + colors.reset, | |
logging.CRITICAL: colors.bold_red + format + colors.reset | |
} | |
def format(self, record): | |
log_fmt = self.FORMATS.get(record.levelno) | |
formatter = logging.Formatter(log_fmt, datefmt=self.datefmt) | |
return formatter.format(record) | |
formatter = logging.Formatter( | |
fmt="[%(asctime)s %(name)s %(levelname)s] %(message)s", | |
datefmt="%Y-%m-%d %H:%M:%S", | |
) | |
handler = logging.StreamHandler() | |
handler.setFormatter(ColorFormatter()) | |
handler.setLevel(logging.INFO) | |
logger = logging.getLogger("mia") | |
logger.setLevel(logging.INFO) | |
logger.addHandler(handler) | |
logger.propagate = False |