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ではエスケープ文字の羅列しか見えない - 重要な情報がネストされた 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 |