fblog:555⭐的轻量级命令行 JSON 日志查看器
在微服务和容器化时代,JSON 格式的结构化日志已经成为标配。但当你在终端里用 cat 或 tail 查看这些日志时,满屏的转义字符和嵌套括号让人头疼。fblog 就是来解决这个问题的——一个只有 555 stars 的轻量级 Rust 工具,能把 JSON 日志转换成人类可读的格式。
项目速览
| 属性 | 内容 |
|---|---|
| GitHub | brocode/fblog |
| Stars | 555 |
| 语言 | Rust |
| 特点 | 零配置、支持模板、过滤功能 |
| 最后更新 | 17天前 |
它解决了什么问题?
想象你在调试一个 Node.js 服务,日志输出是这样的:
{"level":"error","message":"Connection failed","timestamp":"2026-03-20T00:00:00Z","meta":{"host":"db.example.com","port":5432,"retry":3}}
在一堆这样的日志里找问题,眼睛很快就会花掉。fblog 把它变成了:
ERROR: Connection failed
host: db.example.com
port: 5432
retry: 3
不需要打开浏览器、不需要启动重量级日志平台,在终端里就能快速浏览和过滤。
核心功能
自动解析嵌套 JSON
无需配置,直接 pipe 进去就能用。支持任意层级的嵌套字段,自动展开成易读的键值对。
内置过滤
只关心错误?用 -f 'level == "error"'。想排除健康检查日志?用 -f '!message ~= /healthcheck/'。语法简单直观。
自定义输出模板
默认格式不合胃口?可以用 Handlebars 模板完全自定义输出样式,比如只显示时间、级别和消息,或者把特定字段高亮。
时间字段识别
自动检测常见的 timestamp 字段,并按时间顺序排列。支持 ISO 8601、Unix 时间戳等多种格式。
快速开始
# 安装(需要 Rust 工具链)
cargo install fblog
# 基本用法
cat app.log | fblog
# 只看错误
cat app.log | fblog -f 'level == "error"'
# 自定义格式
fblog --format "{{timestamp}} [{{level}}] {{message}}"
同类工具对比
| 工具 | Stars | 特点 |
|---|---|---|
| hl | 2991 | 功能更丰富,支持日志级别着色 |
| json-log-viewer | 217 | 交互式 TUI,支持搜索和筛选 |
| fblog | 555 | 极简设计,启动快,模板灵活 |
如果你需要一个即装即用、不占用资源、能集成到脚本里的日志查看器,fblog 比那些大而全的工具更合适。
适用场景
- 本地开发:快速查看 Docker compose 输出
- 服务器排查:SSH 到生产环境,
tail -f配合 fblog 实时监控 - CI/CD 日志:在 GitHub Actions 或 GitLab CI 中美化测试日志
- 数据管道:作为日志预处理工具,过滤后输出到其他系统
注意事项
- 目前只支持 JSON 格式,如果是纯文本日志会原样输出
- 模板语法基于 Handlebars,需要花时间熟悉
- 许可证是 WTFPL(Do What The F*ck You Want To),非常宽松
写在最后
fblog 的代码只有几千行,但解决了一个很实在的问题。在日志基础设施越来越复杂的今天,有时候我们需要的只是一个能把 JSON 变好看的简单工具。它不追求功能全面,而是把”查看 JSON 日志”这一件事做好。
如果你在终端里经常和 JSON 日志打交道,值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/brocode/fblog |
| 许可证 | WTFPL |
| 语言 | Rust |
| 维护者 | @brocode |