62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
# 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()
|
|
|
|
|