#日志文件 import logging import sys def setup_logger(): """ 配置一个全局日志记录器,支持输出到控制台和文件。 """ # 创建一个日志记录器 logger = logging.getLogger("ViolationDetectorLogger") logger.setLevel(logging.DEBUG) # 设置最低级别为DEBUG # 如果已经有处理器了,就不要重复添加,防止日志重复打印 if logger.hasHandlers(): return logger # --- 控制台处理器 --- console_handler = logging.StreamHandler(sys.stdout) # 对于控制台,我们只显示INFO及以上级别的信息 console_handler.setLevel(logging.INFO) console_formatter = logging.Formatter( '%(asctime)s - %(levelname)s - [%(module)s:%(lineno)d] - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) console_handler.setFormatter(console_formatter) # --- 文件处理器 --- file_handler = logging.FileHandler("violation_detector.log", mode='a', encoding='utf-8') # 对于文件,我们记录所有DEBUG及以上级别的信息 file_handler.setLevel(logging.DEBUG) file_formatter = logging.Formatter( '%(asctime)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) file_handler.setFormatter(file_formatter) # 将处理器添加到日志记录器 logger.addHandler(console_handler) logger.addHandler(file_handler) return logger # 创建并导出logger实例 logger = setup_logger()