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と組み合わせてリアルタイム監視 - 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 |