在处理微服务或容器化应用时,JSON 格式的结构化日志已经成为标准。但当这些日志在终端里以纯文本形式输出时,阅读体验往往很糟糕——层层叠叠的大括号让人眼花缭乱。fblog 正是为了解决这个痛点而生的轻量级工具。

项目概览

属性内容
GitHubbrocode/fblog
Stars555
语言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/hl2,992功能丰富,支持多种日志格式
antonmedv/fx20,344通用 JSON 处理器,非专为日志设计
brocode/fblog555专注日志场景,极简设计,零配置开箱即用

适用场景

  • 本地开发:快速查看应用日志,无需启动重量级日志平台
  • 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