feat(app): 集成loguru日志系统并优化错误处理
- 在app.py中引入loguru并配置日志轮转、异步输出等功能 - 添加全局日志初始化函数和程序启动/退出日志记录 - 将所有print语句替换为logger.info/error/debug/warning方法 - 在data_source.py中添加模型加载和视频打开的日志记录 - 在各个处理器中集成日志记录器实例并记录处理状态 - 修改处理器模块导入路径以符合相对导入规范 - 在requirements.txt中添加loguru依赖包 - 统一异常处理的日志记录方式,便于调试和监控
This commit is contained in:
@@ -2,8 +2,8 @@ import cv2
|
||||
import numpy as np
|
||||
import math
|
||||
from collections import deque
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
|
||||
|
||||
class DrawDirectionProcessor(BaseProcessor):
|
||||
@@ -96,7 +96,7 @@ class DrawDirectionProcessor(BaseProcessor):
|
||||
self._draw_track_info(vis, track_id, (center_x, center_y))
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error processing box: {e}")
|
||||
self.logger.error(f"Error processing box: {e}")
|
||||
continue
|
||||
|
||||
# 清理长时间未出现的track
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
import math
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
|
||||
|
||||
class DrawGraffitiProcessor(BaseProcessor):
|
||||
|
||||
@@ -2,8 +2,8 @@ import cv2
|
||||
import numpy as np
|
||||
from dataclasses import dataclass, field
|
||||
from typing import List, Optional, Set
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
@@ -2,8 +2,8 @@ import numpy as np
|
||||
import cv2
|
||||
import math
|
||||
from collections import deque, defaultdict
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
|
||||
|
||||
class GraffitiProcessor(BaseProcessor):
|
||||
|
||||
@@ -5,6 +5,6 @@ import numpy as np
|
||||
class ResultLogger(BaseProcessor):
|
||||
"""示例处理器:打印检测结果日志"""
|
||||
def process(self, data: PipelineData) -> PipelineData:
|
||||
print(f"\n【{self.name}】帧{data.frame_idx} - 检测到目标数: {len(data.current_result.boxes)}")
|
||||
print(f"缓存帧数: {len(data.result_cache)}")
|
||||
self.logger.info(f"【{self.name}】帧{data.frame_idx} - 检测到目标数: {len(data.current_result.boxes)}")
|
||||
self.logger.info(f"缓存帧数: {len(data.result_cache)}")
|
||||
return data
|
||||
@@ -1,7 +1,7 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
import math
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ class RetrogradeProcessor(BaseProcessor):
|
||||
|
||||
# 输出逆行信息
|
||||
for track_id, event in events_all0.items():
|
||||
print(f"【逆行检测器】帧{self.frame_idx} - 检测到事件:{event} - 轨迹ID: {track_id}")
|
||||
self.logger.info(f"【逆行检测器】帧{self.frame_idx} - 检测到事件:{event} - 轨迹ID: {track_id}")
|
||||
|
||||
# 更新事件历史
|
||||
for track_id, event in frame_events.items():
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import numpy as np
|
||||
import cv2
|
||||
import math
|
||||
from yolo_gs.pipeline.base_processor import BaseProcessor
|
||||
from yolo_gs.pipeline.pipeline_data import PipelineData
|
||||
from ..base_processor import BaseProcessor
|
||||
from ..pipeline_data import PipelineData
|
||||
|
||||
|
||||
class GraffitiVisualizer(BaseProcessor):
|
||||
|
||||
Reference in New Issue
Block a user