Yolov/log.py

47 lines
1.3 KiB
Python

import logging
from logging.handlers import RotatingFileHandler
# 配置日志处理
def setup_logger():
"""优化日志系统 - 减少磁盘I/O"""
logger = logging.getLogger("YOLOv8 Optimized")
logger.setLevel(logging.INFO)
# 清除现有处理器
for handler in logger.handlers[:]:
logger.removeHandler(handler)
# 优化控制台日志格式
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
# 控制台处理器 - 设置较低的延迟
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
# 文件处理器 - 限制日志大小和使用异步写入
log_file = 'yolo_detection.log'
file_handler = RotatingFileHandler(
log_file,
maxBytes=5 * 1024 * 1024, # 减小为5MB
backupCount=3,
encoding='utf-8',
delay=False # 禁用延迟打开文件
)
file_handler.setFormatter(formatter)
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)
return logger
logger = setup_logger()