cdf228fe56
- 在app.py中引入loguru并配置日志轮转、异步输出等功能 - 添加全局日志初始化函数和程序启动/退出日志记录 - 将所有print语句替换为logger.info/error/debug/warning方法 - 在data_source.py中添加模型加载和视频打开的日志记录 - 在各个处理器中集成日志记录器实例并记录处理状态 - 修改处理器模块导入路径以符合相对导入规范 - 在requirements.txt中添加loguru依赖包 - 统一异常处理的日志记录方式,便于调试和监控
33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
from loguru import logger
|
|
from abc import ABC, abstractmethod
|
|
import asyncio
|
|
from .pipeline_data import PipelineData
|
|
|
|
|
|
class BaseProcessor(ABC):
|
|
"""所有处理器的抽象基类,定义统一的处理接口"""
|
|
def __init__(self, name: str):
|
|
self.name = name # 处理器名称(便于日志/调试)
|
|
# 初始化日志记录器
|
|
self.logger = logger
|
|
self.logger.debug(f"处理器 {self.name} 已初始化")
|
|
|
|
@abstractmethod
|
|
def process(self, data: PipelineData) -> PipelineData:
|
|
"""
|
|
核心处理方法(必须由子类实现)
|
|
:param data: 管道数据包
|
|
:return: 处理后的数据包(可修改原数据或返回新数据)
|
|
"""
|
|
pass
|
|
|
|
async def process_async(self, data: PipelineData):
|
|
"""
|
|
异步处理方法(可由子类实现)
|
|
:param data: 管道数据包
|
|
"""
|
|
# 默认实现:调用同步处理方法
|
|
self.process(data)
|
|
|
|
def __repr__(self) -> str:
|
|
return f"Processor[{self.name}]" |