チェーンAPI、レベル別・サンプリングログ、任意のCBOR出力を備えた、Go向けのゼロアロケーションJSONロガー。
sirupsen/logrus
拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。
- スター
- 25,764
- フォーク
- 2,297
- 未解決の Issue
- 59
- 最終コミット
- 22 日前
これは何?
LogrusはGo向けの構造化ロガーです。標準ライブラリのlogパッケージとAPI互換性があるため、既存のlogのインポートをほとんど変更せずに置き換えられます。キーと値のフィールド、ログレベルを含むエントリーを出力し、ターミナル向けの色付きテキスト、logfmt形式のテキスト、LogstashやSplunkなどのログ集約システム向けJSONに対応しています。
TraceからPanicまでの7段階のログレベル、任意のio.Writerを使ったロガーごとの出力先、WithFieldsで作成できる再利用可能なフィールドコンテキストをサポートしています。フックを使えば、エントリーをエラートラッカーやsyslogなどに転送できます。また、Formatメソッドを実装することでカスタムフォーマッターを追加できます。呼び出し元情報の出力、ログメッセージを検証するテスト用フック、Fatal終了時のハンドラーも備えています。
このプロジェクトはメンテナンスモードです。メンテナーはセキュリティ修正、バグ修正、パフォーマンス改善に注力しており、新機能はGoのlog/slogとの相互運用性などに限られます。READMEでは、新しいGoの構造化ロギングの実践を取り入れて設計された代替ライブラリとして、Zerolog、Zap、Apexを紹介しています。
主な機能
- 01標準ライブラリのlog APIとドロップイン互換です。
- 02TraceからPanicまでの7段階のログレベルと、構造化されたキーと値のフィールドに対応しています。
- 03ターミナル向けの色付き出力、logfmt形式のテキスト、JSONフォーマッターを利用できます。
- 04フックを使って、エントリーをsyslogやエラートラッカーなどのサービスに転送できます。
- 05シンプルなFormatインターフェースを実装して、カスタムフォーマッターを追加できます。
- 06ユニットテストでログメッセージを検証するためのテスト用フックを備えています。
ユースケース
- Goサービスに構造化JSONログを導入し、LogstashやSplunkで取り込む。
- 呼び出し箇所を書き換えずに、既存プロジェクトを標準のlogパッケージから移行する。
- フックを使って、エラーレベルのエントリーを外部の例外トラッカーに送信する。
- 特定のログメッセージが出力されたことをユニットテストで検証する。
クイックスタート
- 1
Logrusモジュールをインストールします
go get github.com/sirupsen/logrus - 2
Goコードにインポートし、フィールド付きのメッセージをログに記録します
使う前に知っておきたいこと
- Logrusはメンテナンスモードのため、新機能の追加は予定されていません。
- READMEでは、Zerolog、Zap、Apexなどの代替ツールが紹介されています。
収録されている特集
トピック
よくある質問
- logrus とは?
- 拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。 LogrusはGo向けの構造化ロガーです。標準ライブラリのlogパッケージとAPI互換性があるため、既存のlogのインポートをほとんど変更せずに置き換えられます。キーと値のフィールド、ログレベルを含むエントリーを出力し、ターミナル向けの色付きテキスト、logfmt形式のテキスト、LogstashやSplunkなどのログ集約システム向けJSONに対応しています。
- logrus は無料で使えますか?ライセンスは?
- logrus は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- logrus は今もメンテナンスされていますか?
- 活発にメンテナンス中。logrus の最終コミットは 2026年10月2日 です。
- logrus は何に使えますか?
- Goサービスに構造化JSONログを導入し、LogstashやSplunkで取り込む。 呼び出し箇所を書き換えずに、既存プロジェクトを標準のlogパッケージから移行する。 フックを使って、エラーレベルのエントリーを外部の例外トラッカーに送信する。 特定のログメッセージが出力されたことをユニットテストで検証する。
- logrus のインストール方法は?
- Logrusモジュールをインストールします: go get github.com/sirupsen/logrus Goコードにインポートし、フィールド付きのメッセージをログに記録します
- logrus はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/sirupsen/logrus
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
見やすいターミナル出力、フィールド優先の構造化JSON、秘密情報のマスキングに対応した、ランタイム依存ゼロのTypeScript・JavaScript向け汎用ロガー。
JSONやlogfmtのログを読みやすく表示し、フィルタリング、ソート、ライブ追従にも対応するコマンドラインログビューア。
Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。
Deno、Node.js、Bun、ブラウザー、エッジ関数で動作する、依存関係ゼロのJavaScript/TypeScript向けロギングライブラリです。
Pino、Winston、クラウドサービス、ファイル、StatsD、OpenTelemetryへログを送る、統一されたTypeScriptロギングAPIです。