feat(app): 集成loguru日志系统并优化错误处理
- 在app.py中引入loguru并配置日志轮转、异步输出等功能 - 添加全局日志初始化函数和程序启动/退出日志记录 - 将所有print语句替换为logger.info/error/debug/warning方法 - 在data_source.py中添加模型加载和视频打开的日志记录 - 在各个处理器中集成日志记录器实例并记录处理状态 - 修改处理器模块导入路径以符合相对导入规范 - 在requirements.txt中添加loguru依赖包 - 统一异常处理的日志记录方式,便于调试和监控
This commit is contained in:
+11
-7
@@ -1,3 +1,4 @@
|
||||
from loguru import logger
|
||||
from typing import List, Iterator
|
||||
import asyncio
|
||||
from .base_processor import BaseProcessor
|
||||
@@ -10,16 +11,19 @@ class Pipeline:
|
||||
def __init__(self):
|
||||
self.processors: List[BaseProcessor] = [] # 同步处理器列表
|
||||
self.async_processors: List[BaseProcessor] = [] # 异步处理器列表
|
||||
# 初始化日志记录器
|
||||
self.logger = logger
|
||||
self.logger.debug("管道已初始化")
|
||||
|
||||
def add_processor(self, processor: BaseProcessor) -> None:
|
||||
"""向管道添加同步处理器(按添加顺序执行)"""
|
||||
self.processors.append(processor)
|
||||
print(f"管道已添加同步处理器: {processor}")
|
||||
self.logger.info(f"管道已添加同步处理器: {processor}")
|
||||
|
||||
def add_processor_async(self, processor: BaseProcessor) -> None:
|
||||
"""向管道添加异步处理器(异步执行,不阻塞数据流)"""
|
||||
self.async_processors.append(processor)
|
||||
print(f"管道已添加异步处理器: {processor}")
|
||||
self.logger.info(f"管道已添加异步处理器: {processor}")
|
||||
|
||||
def remove_processor(self, processor_name: str) -> bool:
|
||||
"""移除指定名称的处理器"""
|
||||
@@ -27,15 +31,15 @@ class Pipeline:
|
||||
for idx, p in enumerate(self.processors):
|
||||
if p.name == processor_name:
|
||||
self.processors.pop(idx)
|
||||
print(f"管道已移除同步处理器: {p}")
|
||||
self.logger.info(f"管道已移除同步处理器: {p}")
|
||||
return True
|
||||
# 检查异步处理器列表
|
||||
for idx, p in enumerate(self.async_processors):
|
||||
if p.name == processor_name:
|
||||
self.async_processors.pop(idx)
|
||||
print(f"管道已移除异步处理器: {p}")
|
||||
self.logger.info(f"管道已移除异步处理器: {p}")
|
||||
return True
|
||||
print(f"未找到处理器: {processor_name}")
|
||||
self.logger.warning(f"未找到处理器: {processor_name}")
|
||||
return False
|
||||
|
||||
def run(self, data_iterator: Iterator[PipelineData]) -> Iterator[PipelineData]:
|
||||
@@ -61,7 +65,7 @@ class Pipeline:
|
||||
data = processor.process(data)
|
||||
yield data
|
||||
except Exception as e:
|
||||
print(f"同步处理器 {processor.name} 执行出错: {e}")
|
||||
self.logger.error(f"同步处理器 {processor.name} 执行出错: {e}")
|
||||
|
||||
# 异步执行异步处理器,不阻塞数据流
|
||||
if self.async_processors:
|
||||
@@ -87,4 +91,4 @@ class Pipeline:
|
||||
# 如果处理器不支持异步处理,则同步处理
|
||||
processor.process(data)
|
||||
except Exception as e:
|
||||
print(f"异步处理器 {processor.name} 执行出错: {e}")
|
||||
self.logger.error(f"异步处理器 {processor.name} 执行出错: {e}")
|
||||
|
||||
Reference in New Issue
Block a user