首页 / 产品 / LogTrace

LogTrace / 多来源日志归并与故障排查系统 V1.0.0

把多份设备日志并成一条时间线

现场排查的第一步,通常是把几台设备、几条产线导出的日志凑到一起看。文件格式不一,时间戳写法有十几种,几台机器的时钟还对不齐;人工翻一遍既慢,事后又说不清"这一段是怎么筛出来的"。这套系统把编码嗅探、时间戳归一、多来源归并、规则筛查、证据条与报告串成一条链,筛出来的每一条都能回到原始文件的具体行,条数经得起另写一套实现复算。交接时不用重新翻文件,把报告给出去就行。

命中条数可复算

关键字、正则、数值阈值、时间窗内 N 条序列四类规则,每次筛查都另用一套实现复算真值:纯 Python 逐行读原文,不经数据库,也不用倒排索引。两边差一条就判失败,并把差异行列出来,不是只在界面上显示一个数字。

重跑得到同一条时间线

归并顺序固定:时间未知的行排在最后并单独列出,其余按时间、来源序号、行号、切片号升序排。同一批文件重跑,顺序一致。导入只读原文件,不改写、不移动被导入的日志。

时钟漂移只建议不自动改

同一事件在多份日志里的时间差取中位数来估偏移;事件少于 10 条或偏移超过 60 秒就不建议对齐。对齐只作用在显示层,取消勾选即回退,原始时间戳永不改写,报告里写清哪些行做过偏移。

功能

六个页签加六个命令行子命令

六个页签按现场排查的顺序排:先把日志导进来,再看时间线,然后按规则筛,筛完收证据条,最后出报告;第六张是运行记录。同一条链路另有命令行入口,批量跑与自检走命令行更方便。

页签与它负责的那一段
#页签这一段给出什么
01日志源与导入 支持 .log、.txt、.csv、.json、.jsonl、.xml、.zip、.gz 八种输入;编码嗅探、流式逐行入库、超长行切片,导入后给出各来源的行数与时间范围。
02时间轴 12 种时间戳写法归一,没有日期的行按该文件的基准日补全,跨零点时单调递增推进一天;多来源稳定归并成一条时间线,时间未知的行单独列出,并给出时钟漂移建议。
03规则与筛查 关键字、正则、数值阈值、时间窗内 N 条序列四类规则;每次筛查同时跑一遍独立真值复算,命中条数、差异行与判据一起显示。时间窗按同一来源滑窗,命中集合不去重,时间未知的行不参与。
04证据清单 每条命中收成一张证据条,带来源文件、行号、原文片段与标签,可以逐条翻回原文核对;也可以只保留要写进报告的那几条。
05报告 生成单个离线自包含的 HTML 报告,含检索条件、命中条数、口径说明与时间未知行的占比;另有 CSV 与 Word 导出。报告不依赖网络,发给别人直接能打开。
06运行记录 每一次导入、筛查、导出与自检的结果,以及被拒绝时的原因;按条数分页。

命令行侧六个子命令:ingest 导入、merge 归并、find 筛查、report 报告、export 导出、selftest 自检。界面与命令行共用同一套归并与筛查实现,不是两份代码。

技术做法

这套系统用什么搭的

取向与同系列的其他几套一致:能离线就离线,能不引第三方依赖就不引。现场与产线机器常常装不了服务端,所以这一套没有服务端组件,一个目录拷走就能跑。

开发语言Python 3.12,归并、筛查与报告都用标准库实现;界面用 Vue 3 加 TypeScript 与 Vite 构建成静态资源。共 51 个源文件 19259 行(不含测试)
界面桌面窗口由 pywebview 承载;没装这个组件时退化成浏览器形态,打开本机 127.0.0.1 的本地页面,功能一样
第三方组件运行期只有两个可选组件:pywebview(BSD-3)负责窗口,python-docx(MIT)负责 Word 导出,两者都延迟导入且容错。不引入需要服务端部署的日志平台
存储单个 SQLite 文件 .logtrace,15 张表,触发器 0 个;全文检索用 FTS5,中文按 2-gram、英文按整词切分
导出HTML 报告为单文件自包含,另有 CSV 与 Word;导出与筛查都不改动库里的日志原文
打包与部署PyInstaller 目录版打包,带图标、不带控制台窗口;免安装,删除目录即卸载
操作系统Windows 10 / 11(64 位)
外网不需要。软件离线运行,日志只在导入时读一次,不改写原文件
487后端用例pytest 收集数,含归并、筛查与报告三条链路
15张库内表单个 .logtrace 文件,触发器 0 个
12种时间戳归一规则 T01 到 T12,含无日期按基准日补全
103.3秒归并 100 万行100 万行 167.3 MB 样本,判据是 120 秒以内

口径说明:性能数字取自项目的开发约定附录,样本为四条来源各一个 .log、合计 100 万行 167.3 MB(每条固定 176 字节),环境为 Python 3.12.10 加 SQLite 3.49.1、12 逻辑核、15.8 GB 内存、Windows 10;归并 103.3 秒,库体积是原文件的 1.783 倍,首次筛查 336 毫秒,重复筛查中位 29.0 毫秒,命中条数与独立复算的真值差 0。用例数与源码行数由项目的 tools 采集脚本于 2026-10-15 在开发机上现场采集(用例只收集不执行;源码不含测试代码与打包产物),该项目仍在迭代,这两个数字会随后续提交增长。

功能边界

这套系统不做什么

它给的是可疑片段与出处,不是结论。写在这里的每一条,在软件说明书与开发约定里都有对应说明。

不做故障原因的自动判定

它把可疑片段按规则筛出来并标出出处,判不判、判成什么,留给在现场看日志的工程师。软件不给因果结论。

不做统计推断与良率计算

测试数据的统计推断、良率与失效分布属于集成电路测试数据分析与良率诊断系统(IC-YieldScope);这套系统只看日志文本与时间线。

不排试验,不记样品台账

试验排程、设备通道占用与样品流转属于集成电路可靠性试验过程管理系统(IC-RelLab)。

不改写、不移动被导入的日志原文件

导入是只读动作:日志原文照旧躺在原目录,软件只在库里存一份索引与切片,方便回查与导出。

不引入需要服务端部署的日志平台

客户内网与产线机器往往装不了服务端,所以这套系统定位成单机工具,不做采集代理,也不做集中式存储。

几件没测完的事如实列在这里

百万行规模下,一次关键字筛查需要 3.4 秒;大结果集的报告还没测;六个页签还没在真实浏览器里对真后端完整走查一遍。这三条写在项目的运行记录里,不写进功能表。

运行环境

装在什么机器上

操作系统Windows 10 / 11(64 位)
硬件建议8 GB 及以上内存,目录约 40 MB;导入的日志量越大,库文件与索引占用按比例增加(实测库体积约为原文件的 1.783 倍)
安装方式免安装目录版,解压后双击 LogTrace-V1.0.exe 即可;删除目录即卸载。不需要预装 Python、Java 或数据库服务
外网不需要;日志与报告都在本机,现场数据不出机器

下一步

拿一份脱敏日志试一次归并

把几台设备导出的日志给我们(可以先脱敏),我们按你的规则跑一遍,报告里能看到每条命中的出处、时间未知行的占比,以及独立复算的结果。