json-log-viewer:217⭐のターミナル JSON ログインタラクティブビューアー

マイクロサービスとコンテナ化の時代、ログ出力はすでに純テキストから構造化 JSON 形式へと移行している。この形式はプログラムでの解析には便利だが、ターミナルで何千行もの入れ子になった JSON ログを確認する必要があるとき、体験は悲惨なものになる。今日紹介する json-log-viewer は、まさにこの痛みを解消するために生まれたニッチツールだ。

プロジェクト概要

属性内容
GitHubhedhyw/json-log-viewer
Stars217
言語Go
特徴ターミナルネイティブ、インタラクティブフィルタリング、折りたたみ可能なフィールド
最終更新2週間前

解決する問題

現代のアプリケーションのログは通常、このような形式になる:

{"timestamp":"2026-03-19T10:23:45Z","level":"error","service":"payment-api","trace_id":"abc123","message":"database connection timeout","meta":{"retry_count":3,"endpoint":"/v1/charge","latency_ms":5234}}

1行のログが画面の半分を占め、重要な情報が入れ子構造に埋もれてしまう。従来の cattailjq でも処理は可能だが、インタラクティブ性に欠けるか、複雑なクエリ構文を覚える必要がある。

json-log-viewer は Vim 風のインタラクティブインターフェースを提供し、ターミナル上でファイルを閲覧するようにログを閲覧でき、JSON の構造化利点も維持する。

核心機能

1. インタラクティブフィルタリング

l キーでフィルタ入力ボックスを表示。複数のフィルタモードをサポート:

  • 完全一致level:error でエラーレベルのログのみ表示
  • あいまい検索timeout で該当キーワードを含む行をすべてマッチ
  • 正規表現/payment|charge/ で複数キーワードを同時マッチ
  • フィールドフィルタlatency_ms>5000 で高遅延リクエストをフィルタリング

2. フィールド折りたたみとハイライト

  • JSON 階層を自動認識し、入れ子オブジェクトを折りたたみ可能
  • 異なるログレベル(debug/info/warn/error)を色分け
  • タイムスタンプ、trace_id などの一般的なフィールドを自動整形

3. 複数の入力方式

# ファイルを直接読み込み
jlv app.log

# パイプ入力
cat app.log | jlv

# リアルタイム追跡
tail -f app.log | jlv

# 圧縮ファイル対応
jlv app.log.gz

4. カスタムテーマ

複数の配色テーマを内蔵。YAML 設定ファイルでのカスタマイズも可能:

theme:
  background: "#1e1e1e"
  level_error: "#ff6b6b"
  level_warn: "#feca57"
  timestamp: "#48dbfb"

類似ツール比較

ツールStars特徴適用シナリオ
jq30k+強力なコマンドライン JSON プロセッサスクリプト処理、データ変換
fx20k+インタラクティブ JSON ビューアー一般的な JSON ファイル閲覧
lnav7k+汎用ログファイルビューアー非構造化ログ分析
json-log-viewer217構造化ログ専用設計JSON ログのリアルタイム表示とフィルタリング

jq や fx は静的 JSON ファイルの処理に適しているが、json-log-viewer はストリーミングログシナリオ向けだ。継続的な監視や迅速な問題解決が必要な場合、リアルタイムフィルタリングとログレベルの色分けがより実用的。

適用シナリオ

推奨:

  • コンテナ化アプリケーションのログ調査(Docker/Kubernetes)
  • マイクロサービスアーキテクチャでの分散トレーシング
  • 特定のエラータイプを迅速にフィルタリングする必要がある場合
  • ブラウザとターミナルを行き来したくないバックエンド開発者

あまり適さない:

  • 複雑な統計集計が必要な分析タスク(ELK や Grafana に任せる)
  • 純テキスト形式の従来のログ(lnav が適している)
  • Windows ネイティブ環境(現在 macOS と Linux のみサポート)

クイックスタート

# macOS / Linux
go install github.com/hedhyw/json-log-viewer@latest

# またはプリコンパイル済みバイナリをダウンロード
curl -sL https://github.com/hedhyw/json-log-viewer/releases/latest/download/jlv-linux-amd64 -o jlv
chmod +x jlv
sudo mv jlv /usr/local/bin/

# 基本的な使い方
jlv /var/log/myapp.log

注意事項

  • 現在 Windows はサポートされていない(ただし WSL は使用可能)
  • 超大容量ファイル(GB レベル)はインデックス作成に時間がかかる
  • フィルタ式の構文はシンプルで、複雑な複合条件には非対応

まとめ

json-log-viewer は、的を射たポジショニングの開発者ツールだ。jq のように機能が全面的というわけでも、ELK のように強力というわけでもないが、「ターミナルで JSON ログを迅速に確認する」という特定シナリオでは、代替のないインタラクティブ体験を提供する。217 の star の背後にあるのは、小さく美しいソリューションだ。Docker logs を頻繁に扱うなら、試す価値がある。


属性内容
リポジトリhttps://github.com/hedhyw/json-log-viewer
ライセンスMIT
言語Go
保守者@hedhyw