47 lines
1.3 KiB
Python
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()
|
|
|
|
|