大型日志分析器

在本地流式读取、筛选、绘图并导出超大型 Serilog、.NET、Nginx、JSON Lines 和文本日志。

输入内容和文件始终留在浏览器中

将日志文件拖放到此处

将日志文件拖放到此处

.log、.txt、.jsonl 或 .ndjson。文件始终保留在此设备上。

本地 Web Worker 会以大小受限的分块扫描文件。输入内容和筛选条件绝不会被上传或持久化。

导入设置

安全限制:每行 2 MiB、1 亿条记录、每个筛选条件和聚合标签 512 个字符、2,000 个不同的聚合值,以及 4,096 个不同的时间戳分钟。

分析

请选择日志文件,以建立本地稀疏索引并分析其中的记录。

本页内容

大型日志分析器完全在浏览器中检查生产日志。它支持 Serilog JSON 和紧凑日志事件格式、普通 .NET 文本、Nginx 访问和错误日志、通用 NDJSON 以及纯文本,无需上传运维数据。

详细功能

分析器通过 Web Worker 每次读取一个大小受限的分块,并且仅保留稀疏文件偏移量和大小受限的聚合计数器。它会提取时间戳、严重性、来源、请求或关联 ID、渲染后的消息、消息模板和异常类型。筛选时会重新扫描完整源文件,而虚拟表格仅请求一小页可见数据。格式错误的结构化行仍会显示并计入统计,而不会静默消失。

导出时会重新扫描完整的筛选结果,并使用原始的 LF、CRLF 或 CR 终止符流式输出原始 UTF-8 行字节。界面会显示 Serilog 渲染后的 @m 文本,而 @mt 仍作为热门消息计数的分组键。任何输入或结果都不会存储在 localStorage 中。

实用示例

Serilog CLEF: {"@t":"2026-10-17T10:01:00Z","@l":"Error","@mt":"Payment failed for {OrderId}","@m":"Payment failed for 17"} 会将变化的订单 ID 归入同一个模板。

Nginx 访问日志: 根据 HTTP 状态码类别为组合日志请求分配严重性。

关联搜索: 输入请求 ID 以筛选跨来源的事件,然后导出每一条匹配的原始行。

如何使用此工具

  1. 选择格式

    普通文件可使用自动检测,也可以明确选择 Serilog/.NET、Nginx、JSON Lines 或文本。

  2. 打开日志

    拖放一个本地文件,并查看精确的字节数、已用时间和吞吐量。取消操作会销毁未完成的 Worker 会话。

  3. 筛选和检查

    组合使用包含边界的时间范围、严重性、来源、请求/关联 ID 和全文搜索。浏览虚拟结果表格,并选择一行以查看原始文本。

  4. 导出

    下载完整的筛选结果。Worker 会重新扫描原始文件,并以背压方式流式输出所有匹配项。

提示和最佳实践

  • 如果不希望将任意 JSON 对象解析为 Serilog,请明确选择 JSON Lines 预设。
  • 格式错误计数是指不符合所选结构化预设的行;通用文本会接受每一行有效的 UTF-8 文本。
  • 未选择任何严重性时,结果为空。时间范围会排除无法解析出时间戳的记录。
  • 为确保内存安全,聚合标签和时间戳分钟存在基数限制,但总计数、筛选、分页和导出仍然精确。
  • 全文搜索会匹配解码后的确切原始行,且不区分大小写。

帮助决定下一步

接下来应该改进什么?

请选择一项建议。这些只是想法,并非承诺推出的功能。

选择一个选项

投票只会将所选选项作为匿名计数发送,不包含输入内容、文件数据、URL、Cookie 或标识符,也不会存储在此浏览器中。重新加载页面后可以再次投票。