logging: 全链路日志与完整异常堆栈

- 新增 logutil:DEBUG 全量滚动日志文件 + 控制台 INFO 简洁输出 + GUI 队列处理器
- providers:每次尝试失败记录 HTTP 状态/响应体,网络异常 logger.exception 留完整堆栈
- pipeline:单任务异常不拖垮整批,缓存命中/阶段耗时/停止过程全程留痕
- CLI/GUI 顶层兜底:未预期异常打印完整 traceback 并指引日志文件;GUI 新增「打开日志」按钮
- 新增 test_logutil(文件落盘/级别过滤/异常堆栈/队列),共 33 个测试全部通过
This commit is contained in:
yeuimu
2026-09-02 16:01:44 +08:00
parent 08d26710b4
commit 0033b7a4d2
8 changed files with 271 additions and 53 deletions
+14
View File
@@ -94,6 +94,20 @@ max_tokens = 5000
└── legacy/ # 早期脚本与实验数据
```
## 日志与排错
所有运行过程写入日志文件(exe 同目录 / 源码项目根目录下的 `logs/violation_detector_日期.log`):
- 文件记录 DEBUG 级全量:运行配置、缓存命中、每次请求的重试与 HTTP 响应体、异常完整堆栈;
- 控制台/GUI 只显示 INFO 级简洁信息,异常时同样附带完整 traceback;
- GUI 右下角「打开日志」按钮直达日志文件;CLI 出错时会在结尾打印日志文件路径。
```bash
# 跑测试(33 个单元测试,无需网络与 API Key)
uv run --with pytest --with aiohttp --with openpyxl --no-project \
env PYTHONPATH=src pytest tests -q
```
## 检测规则与已知特性
- 分类按提示词 17 类标准输出唯一分类,自动归一化写法差异。