import logging import sys class LogHelper: def __init__(self, level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=None): """ 初始化日志配置 :param level: 日志级别,默认为 logging.INFO :param format: 日志格式字符串 :param handlers: 日志处理器列表,默认为空(会自动添加控制台处理器) """ self.level = level self.format = format self.handlers = handlers if handlers is not None else [] def add_console_handler(self, stream=sys.stdout, encoding='utf-8'): """添加控制台处理器""" console_handler = logging.StreamHandler(stream) console_handler.setFormatter(logging.Formatter(self.format)) # 设置控制台编码 if encoding: console_handler.encoding = encoding self.handlers.append(console_handler) def add_file_handler(self, filename, encoding='utf-8'): """添加文件处理器(解决中文乱码问题)""" # 使用支持UTF-8编码的文件处理器 filepath = "log/" + filename file_handler = logging.FileHandler(filepath, encoding=encoding) file_handler.setFormatter(logging.Formatter(self.format)) self.handlers.append(file_handler) def setup(self): """应用日志配置""" logging.basicConfig( level=self.level, format=self.format, handlers=self.handlers ) # # 使用示例 # if __name__ == "__main__": # # 创建配置实例 # logger_config = LoggerConfig( # level=logging.DEBUG, # 设置日志级别为 DEBUG # format='%(asctime)s [%(levelname)s] %(message)s' # 自定义格式 # ) # # # 添加处理器 # logger_config.add_console_handler() # 默认输出到 stdout # logger_config.add_file_handler('Debug.log') # 添加文件日志 # # # 应用配置 # logger_config.setup() # # 测试日志 # logging.debug("Debug 信息") # logging.info("Info 信息") # logging.warning("警告信息")