# log.py - 增强日志输出 import logging from logging.handlers import RotatingFileHandler import sys # 在 log.py 中添加更详细的日志格式 def setup_logger(): """优化日志系统 - 减少磁盘I/O""" logger = logging.getLogger("YOLOv Optimized") logger.setLevel(logging.DEBUG) # 改为DEBUG级别以查看更多信息 # 清除现有处理器 for handler in logger.handlers[:]: logger.removeHandler(handler) # 优化控制台日志格式 formatter = logging.Formatter( '%(asctime)s [%(levelname)s] [%(module)s:%(lineno)d] %(message)s' ) # 控制台处理器 - 设置较低的延迟 console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) console_handler.setLevel(logging.DEBUG) # 文件处理器 - 限制日志大小和使用异步写入 log_file = 'yolo_detection.log' file_handler = RotatingFileHandler( log_file, maxBytes=10 * 1024 * 1024, # 10MB backupCount=5, encoding='utf-8', delay=False ) file_handler.setFormatter(formatter) file_handler.setLevel(logging.INFO) logger.addHandler(console_handler) logger.addHandler(file_handler) # 禁用不需要的库的日志 logging.getLogger("werkzeug").setLevel(logging.WARNING) logging.getLogger("engineio").setLevel(logging.WARNING) logging.getLogger("socketio").setLevel(logging.WARNING) # 设置其他库的日志级别 logging.getLogger("urllib3").setLevel(logging.WARNING) logging.getLogger("requests").setLevel(logging.WARNING) # 设置任务管理器的日志级别 logging.getLogger("task_manager").setLevel(logging.DEBUG) return logger logger = setup_logger()