日志解析器
粘贴原始日志——JSON、logfmt、Web 访问、syslog 或普通文本——不写模式,直接得到时间、级别、异常与关键字段。
时间范围
2026-10-20T13:55:36.123+08:00 信息 [网关] 收到请求 path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004+08:00","level":"错误","service":"支付服务","message":"扣款失败","order_id":"A-1042","user_id":4821}
2026-10-20 13:55:40,512 错误 [订单服务] 提交订单时发生未处理异常
java.lang.IllegalStateException: 网关超时
at com.acme.Order.submit(Order.java:42)
Caused by: java.net.SocketTimeoutException: 读取超时
at com.acme.Gateway.call(Gateway.java:77)
2026-10-20T13:55:41.900+08:00 警告 [网关] 安排重试 attempt=2 order_id=A-1042怎么用
- 粘贴一段日志或打开本地 .log / .txt 文件。解析立刻开始,没有「运行」按钮;每一行依次尝试 JSON、logfmt、Web 访问、syslog,以及「时间或级别开头」的文本。
- 先看摘要:时间范围、级别分布、异常数、识别到的格式与最常见的字段键。摘要始终统计全部事件。
- 点级别 chip 或在搜索框输入关键词来缩小列表,两者可叠加。点任意一行可展开完整消息、全部字段、异常堆栈与原始行;复制或下载的是当前筛选后的 JSON。
示例
原始日志
2026-10-20T13:55:36.123Z 信息 [网关] 收到请求 path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"错误","service":"支付服务","message":"扣款失败","order_id":"A-1042","user_id":4821}
2026-10-20 13:55:40,512 错误 [订单服务] 提交订单时发生未处理异常
java.lang.IllegalStateException: 网关超时
at com.acme.Order.submit(Order.java:42)解析摘要
事件:3 · 行数:5 时间范围:2026-10-20T13:55:36.123Z → 2026-10-20T13:55:40.512(时区混合) 级别:信息 1 · 错误 2 异常:1 格式:JSON 1 · 文本 2 字段:path 1 · user_id 2 · order_id 1 · service 1
第二行是一个完整的 JSON 事件;Java 类名与堆栈归入上一条「错误」事件。最后一行没有时区,按字面时刻参与比较,所以时间范围标注为「时区混合」。中文级别词与英文级别词一样识别,输入原文不会被改写。
口径、上限与已知问题
- 格式逐行识别,顺序固定:JSON(一行一个对象)、logfmt(至少 2 个 key=value)、Apache/Nginx Common/Combined 访问日志、syslog RFC 5424/3164,最后是「行首为支持的时间戳或级别」的文本。都不命中就保留为普通事件,不丢行。
- 只归一化无歧义的时间:ISO 8601、年在前日期、Apache 访问时间、Unix 秒/毫秒。03/04/2026、只有日期、无年份 syslog 只保留原文,时间字段为空,绝不猜。
- 小数秒截断到毫秒,不四舍五入;偏移原样保留。没有时区的时间按字面时刻比较,摘要会标注「无时区的字面时间」或「时区混合」。
- 级别来自固定词表(英文 + 中文/阿语词)、pino/bunyan 数字、syslog PRI/severity,或 HTTP 状态码(5xx 错误、4xx 警告、其余信息)。识别不到就是未知,不默认成 info。
- 缩进行、堆栈帧、Traceback、Exception in thread、Caused by 会并入上一条事件;空行结束堆栈。这是启发式规则,自定义多行格式可能需要用空行分隔事件。
- 异常只从以 Exception / Error / Throwable 结尾的类名识别;有多个 Caused by 时取最深的一条。不解析堆栈帧、不做根因排序、不调用 AI。
- 列表最多渲染 200 条匹配事件;计数、摘要、复制与下载始终覆盖全部匹配,列表会明确提示被截断。
- 输入硬上限 5,000,000 字符;超过 500,000 字符仍会解析,但防抖更长。单行超过 200,000 字符时按普通文本保留。
- 不支持 JSON 数组与多行美化 JSON——只接受一行一个对象;非法 JSON、注释、尾逗号不会被修复,按普通文本保留。
- 不联网、不上传、不写 URL/存储/log;文件只通过浏览器 File API 本地读取,复制与下载由你主动点击触发。
相关工具
日志结构化之后,通常还需要这些。