butubb
2c32c397c8
feat(日志): 日志页支持关键字/级别/时间过滤 + 下载(含滚动历史)
「日志」页原来只能 tail 固定行数、且文件下拉写死了 4 项(新增的 notify.log
根本选不到)。本次:
- core/logger.py 新增读取接口:list_log_files()(模块文件 + .1/.2 滚动历史,
白名单)、query_log()(关键字/最低级别/时间过滤,返回结构化行)、
read_log_text()(导出)。
· 时间/级别过滤对**续行**用继承值(traceback 缩进行本身没有前缀),
按 ERROR 筛不会把堆栈拆散;
· 过滤按"最近 N 条命中"返回,保持文件原顺序;
- GET /api/logs 换新协议(rows/files/matched/scanned/truncated),
新增 GET /api/logs/download(附件下载,支持同样过滤;无一条件时整文件);
- 顺带修 **目录穿越**:原实现 os.path.join(_LOG_DIR, file) 可用 ../../ 逃逸,
现在 file 必须命中白名单;
- 顺带修 web/admin_api.py 里 _log 未定义(用户增删改的日志行会 NameError);
- 前端:文件下拉改为按接口渲染、加关键字(命中高亮)/级别/时间范围/下载/重置,
自动刷新时不再把正在上翻的用户拽回底部。
文档:doc/API.md §10.1(参数与返回)、README 日志节。
2026-09-16 08:44:19 +08:00
..
2026-09-16 08:44:19 +08:00
2026-09-14 08:14:11 +08:00
2026-09-13 16:29:38 +08:00
2026-09-15 13:55:14 +08:00
2026-08-07 13:55:48 +08:00
2026-09-15 13:24:28 +08:00
2026-08-11 14:53:04 +08:00
2026-09-10 18:22:20 +08:00
2026-09-13 17:18:30 +08:00
2026-09-15 14:05:33 +08:00
2026-09-13 10:34:58 +08:00
2026-09-14 08:25:35 +08:00
2026-09-13 23:08:59 +08:00
2026-09-13 16:42:53 +08:00