""" 统一日志工具 """ import logging class ColorFormatter(logging.Formatter): """ using terminal color to print colorful log """ COLORS = { 'WARNING': '\033[93m', 'ERROR': '\033[91m', 'CRITICAL': '\033[91m', 'INFO': '\033[94m', 'DEBUG': '\033[92m', 'ENDC': '\033[0m' } def format(self, record): color = self.COLORS.get(record.levelname, '') message = super().format(record) return f"{color}{message}{self.COLORS['ENDC']}" if color else message def get_logger(name: str | None = None): """ using ColorFormatter to print colorful log """ logger = logging.getLogger(name) logger.setLevel(logging.INFO) handler = logging.StreamHandler() handler.setFormatter(ColorFormatter('[%(asctime)s] %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')) logger.addHandler(handler) return logger