fblog:555⭐的极简 JSON 日志查看器,终端里的日志分析利器
在处理微服务或容器化应用时,JSON 格式的结构化日志已经成为标准。但当这些日志在终端里以纯文本形式输出时,阅读体验往往很糟糕——层层叠叠的大括号让人眼花缭乱。fblog 正是为了解决这个痛点而生的轻量级工具。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | brocode/fblog |
| Stars | 555 |
| 语言 | Rust |
| 特点 | 轻量、高性能、可定制输出格式 |
| 最后更新 | 19天前 |
它解决了什么问题
现代应用普遍采用 JSON 格式记录日志,一条典型的日志可能是这样的:
{"timestamp":"2026-03-21T08:05:00Z","level":"INFO","service":"api","message":"Request processed","duration_ms":42,"user_id":"12345"}
在终端里直接查看时,这种紧凑格式难以快速扫读。而 fblog 可以将其转换为人类友好的格式:
2026-03-21 08:05:00 | INFO | Request processed
service: api
duration_ms: 42
user_id: 12345
核心特性
消息模板定制
通过 --message-format 参数可以自定义输出格式。比如只显示时间、级别和消息:
fblog --message-format "{timestamp} [{level}] {message}"
嵌套字段展平
自动将嵌套的 JSON 对象展开为扁平格式,无需手动解析层级结构。
流式处理
支持管道输入,可以无缝集成到现有的日志处理流程中:
docker logs -f myapp | fblog
kubectl logs -f deployment/api | fblog
字段过滤
内置 --implicit-format-return 选项,可以指定需要特别关注的字段。
高性能
基于 Rust 实现,处理大日志文件时占用内存极低,速度远超基于 Node.js 或 Python 的同类工具。
快速开始
安装
# macOS/Linux via Homebrew
brew install fblog
# 或使用 cargo
cargo install fblog
# 下载预编译二进制文件
curl -L https://github.com/brocode/fblog/releases/latest/download/fblog-x86_64-unknown-linux-gnu -o fblog
chmod +x fblog
基础用法
# 查看文件
fblog app.log
# 管道输入
cat app.log | fblog
# 实时追踪
tail -f app.log | fblog
同类工具对比
| 工具 | Stars | 特点 |
|---|---|---|
| pamburus/hl | 2,992 | 功能丰富,支持多种日志格式 |
| antonmedv/fx | 20,344 | 通用 JSON 处理器,非专为日志设计 |
| brocode/fblog | 555 | 专注日志场景,极简设计,零配置开箱即用 |
适用场景
- 本地开发:快速查看应用日志,无需启动重量级日志平台
- CI/CD 流水线:美化测试输出,让日志更易读
- 生产环境排查:通过 SSH 连接到服务器后即时分析日志
- Docker/Kubernetes:配合容器编排工具实时查看日志流
注意事项
- 仅支持 JSON 格式的结构化日志,纯文本日志需要其他工具
- 输出颜色依赖终端支持,管道重定向到文件时会自动禁用
- 许可证为 WTFPL(Do What The F*ck You Want To Public License),非常宽松
总结
fblog 是一个定位精准的小众工具。它不求面面俱到,而是把”让 JSON 日志更易读”这一件事做到极致。对于经常需要在终端处理日志的开发者来说,这个 555 stars 的项目值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/brocode/fblog |
| 许可证 | WTFPL |
| 语言 | Rust |
| 维护者 | @bomgar |