"""日志路由:查询内存日志缓冲,供 /logs 页面消费。 分层语义: - debug:进度详情(任务 [status pct%]、转写逐段统计、翻译逐批进度、ffmpeg 命令) - info:任务流转里程碑(音频提取/ASR/翻译 的开始与完成、模型加载与卸载、批次汇总) - warning / error:异常与失败,error 含完整 traceback """ from __future__ import annotations from fastapi import APIRouter, Query from ..services.log_buffer import get_log_buffer router = APIRouter(prefix="/api/logs", tags=["logs"]) @router.get("", summary="查询日志(按级别过滤)") def get_logs( level: str = Query("info", pattern="^(debug|info|warning|error)$", description="最小级别:debug=详细, info=简略, error=仅错误"), tail: int = Query(200, ge=1, le=2000, description="最多返回条数"), ) -> dict: records = get_log_buffer().get_records(level=level, tail=tail) return {"level": level, "tail": tail, "count": len(records), "logs": records} @router.delete("", summary="清空日志缓冲") def clear_logs() -> dict: get_log_buffer().clear() return {"status": "cleared"}