| import logging | |
| import colorlog | |
| # 自定义日志等级 | |
| SUCCESS_LEVEL_NUM = 25 | |
| logging.addLevelName(SUCCESS_LEVEL_NUM, "SUCCESS") | |
| def success(self, message, *args, **kwargs): | |
| if self.isEnabledFor(SUCCESS_LEVEL_NUM): | |
| self._log(SUCCESS_LEVEL_NUM, message, args, **kwargs) | |
| logging.Logger.success = success # 添加方法到 Logger 类 | |
| def get_logger(level=logging.INFO) -> logging.Logger: | |
| # 创建logger对象 | |
| logger = logging.getLogger("DataFlow") | |
| if not logger.handlers: | |
| logger.setLevel(level) | |
| # 创建控制台日志处理器 | |
| console_handler = logging.StreamHandler() | |
| console_handler.setLevel(level) | |
| # 定义颜色输出格式 | |
| color_formatter = colorlog.ColoredFormatter( | |
| '%(log_color)s %(asctime)s | %(filename)-20s- %(module)-20s- %(funcName)-20s- %(lineno)5d - %(name)-10s | %(levelname)8s | Processno %(process)5d - Threadno %(thread)-15d : %(message)s', | |
| log_colors={ | |
| 'DEBUG': 'cyan', | |
| # 'INFO': 'white', | |
| 'SUCCESS': 'green', | |
| 'WARNING': 'yellow', | |
| 'ERROR': 'red', | |
| 'CRITICAL': 'red,bg_white', | |
| } | |
| ) | |
| # 将颜色输出格式添加到控制台日志处理器 | |
| console_handler.setFormatter(color_formatter) | |
| # 将控制台日志处理器添加到logger对象 | |
| logger.addHandler(console_handler) | |
| return logger |