Repolode
TheEdgeOfRage

TheEdgeOfRage/logfmt

stdinから受け取ったlogfmtログを色付け・絞り込み・整形する小さなGo製CLIツール。

スター
57
フォーク
9
未解決の Issue
2
最終コミット
5 日前

これは何?

logfmt CLIは標準入力からlogfmt形式のログ行を読み込み、標準出力に見やすく整形して出力します。構文をハイライトし、タイムスタンプとレベルをキーなしで固定位置に配置するほか、表示または非表示にするフィールドを選べます。

ログレベルによる絞り込みでは、WARNなど指定したレベル以上のエントリーだけを出力できます。また、完全一致するkey=valueで絞り込めるため、特定のAPI呼び出しやリクエストに注目できます。Unixのcutコマンドのようにフィールドの値だけを出力するrawモードや、選択したフィールドがひとつもない行を残すオプションもあります。

このツールはUnixのパイプラインモデルに沿っており、kubectl logsやローカルで実行中のGoサービスなどと組み合わせて使うのが一般的です。出力先がパイプやファイルの場合は自動的に色付けを無効にできます。また、フラグで色付けを強制したり、無効にしたりできます。

主な機能

  • 01logfmtのログ行を色付きで出力し、タイムスタンプとレベルを固定位置に配置
  • 02WARNやERRORなど、指定したレベル以上で絞り込み
  • 03完全一致するkey=valueで絞り込み
  • 04カンマ区切りのリストで出力フィールドを選択または除外
  • 05フィールドの値だけを出力するrawモード

ユースケース

  • ローカル開発中のGoサービスのログをターミナルにパイプして読む
  • kubectl logsでKubernetes Podのログを確認し、特定のリクエストに絞り込む
  • 大量のデバッグ出力から警告とエラーだけを抽出する

クイックスタート

  1. 1

    Go で logfmt CLI をインストールする

    go install github.com/TheEdgeOfRage/logfmt@latest
  2. 2

    サービスのログを logfmt にパイプで渡す

    go run yourservice.go | logfmt

使う前に知っておきたいこと

  • go install でインストールするには Go ツールチェーンが必要です。
  • フィルタリングは key=value の完全一致のみ対応しています。正規表現と数値によるフィルタリングにはまだ対応していません。

トピック

よくある質問

logfmt とは?
stdinから受け取ったlogfmtログを色付け・絞り込み・整形する小さなGo製CLIツール。 logfmt CLIは標準入力からlogfmt形式のログ行を読み込み、標準出力に見やすく整形して出力します。構文をハイライトし、タイムスタンプとレベルをキーなしで固定位置に配置するほか、表示または非表示にするフィールドを選べます。
logfmt は無料で使えますか?ライセンスは?
logfmt は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
logfmt は今もメンテナンスされていますか?
活発にメンテナンス中。logfmt の最終コミットは 2026年10月14日 です。
logfmt は何に使えますか?
ローカル開発中のGoサービスのログをターミナルにパイプして読む kubectl logsでKubernetes Podのログを確認し、特定のリクエストに絞り込む 大量のデバッグ出力から警告とエラーだけを抽出する
logfmt のインストール方法は?
Go で logfmt CLI をインストールする: go install github.com/TheEdgeOfRage/logfmt@latest サービスのログを logfmt にパイプで渡す: go run yourservice.go | logfmt
logfmt はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/TheEdgeOfRage/logfmt

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト