json-log-viewer:217⭐的交互式 JSON 日志查看器
json-log-viewer 是一款专为结构化日志设计的终端查看工具。它用 Go 语言编写,基于 Bubble Tea TUI 框架,能把枯燥的 JSON 日志转换成可交互、可过滤、易读的格式。
项目速览
| 属性 | 内容 |
|---|---|
| GitHub | hedhyw/json-log-viewer |
| Stars | 217 |
| 语言 | Go |
| 特点 | 交互式、过滤、快捷键操作 |
| 最后更新 | 21天前 |
它解决了什么问题
现代应用普遍输出 JSON 格式的结构化日志,但这带来一个痛点:人眼难以直接阅读。当需要排查问题时,我们往往面临这样的场景:
- 日志文件动辄上万行,
cat或tail只能看到一堆转义字符 - 关键信息 buried 在嵌套的 JSON 字段里
- 想按时间、级别、服务名过滤,只能用 grep 写复杂的正则
json-log-viewer 把这些问题一次性解决。它不需要配置,不需要启动 Web 服务,打开终端就能用。
核心功能
交互式浏览
启动后,日志以表格形式呈现,支持键盘上下翻页。每条日志的字段被自动解析,按列显示。按 Enter 可以展开单行查看完整 JSON。
实时过滤
按 / 进入搜索模式,支持以下语法:
level:error—— 只显示错误级别日志service:api AND duration>1000—— 组合条件过滤message~timeout—— 模糊匹配
过滤是实时的,大型日志文件也能秒级响应。
字段定制
默认会自动识别常见字段(timestamp、level、message 等),也可以通过配置文件自定义显示哪些列、如何格式化。
浅色/深色主题
按 t 切换主题,适配你的终端配色偏好。
快速开始
安装
Homebrew:
brew install hedhyw/tap/json-log-viewer
Go install:
go install github.com/hedhyw/json-log-viewer@latest
二进制下载: 从 Releases 页面下载对应平台的可执行文件。
基本使用
# 查看文件
jlview application.log
# 管道输入
cat app.log | jlview
# 实时追踪
kubectl logs -f pod-name | jlview
横向对比
| 工具 | Stars | 特点 |
|---|---|---|
| pamburus/hl | 3k | 功能丰富、高性能,但非交互式 |
| brocode/fblog | 557 | 极简,适合脚本集成 |
| json-log-viewer | 217 | 交互式 TUI,体验最接近传统日志查看器 |
如果你需要的是在终端里像用 less 一样浏览日志,但能智能解析 JSON,json-log-viewer 是更合适的选择。
适用场景
- 本地开发:快速查看应用日志,不用打开浏览器或 IDE
- 服务器排查:SSH 登录后直接查看,无需安装复杂依赖
- CI/CD 调试:管道输入,分析构建日志
- Kubernetes 运维:配合
kubectl logs使用,比默认输出友好得多
注意事项
- 需要终端支持 TUI(所有现代终端都没问题)
- 极大型日志文件(GB 级别)建议先过滤再打开
- 过滤语法简单但足够用,不支持复杂的正则表达式
总结
json-log-viewer 是一款小而美的工具。它没有庞大的功能矩阵,而是把「在终端里舒服地查看 JSON 日志」这一件事做到了极致。217 个 star 反映了它的专注,而非价值上限。如果你的日常工作涉及大量结构化日志,它是值得常驻 PATH 的工具。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/hedhyw/json-log-viewer |
| 许可证 | MIT |
| 语言 | Go |
| 维护者 | @hedhyw |