Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。
rs/zerolog
チェーンAPI、レベル別・サンプリングログ、任意のCBOR出力を備えた、Go向けのゼロアロケーションJSONロガー。
- スター
- 12,519
- フォーク
- 657
- 未解決の Issue
- 166
- 最終コミット
- 10 日前
これは何?
Zerologは、イベントをJSONで出力するGo向け構造化ロギングライブラリです。ビルドタグを指定すると、CBORでの出力もできます。チェーンAPIを使ってイベントを組み立て、リフレクションを使わずに型安全なキーと値のフィールドを追加します。そのため、ベンチマークで一般的な処理経路のアロケーションをゼロに抑えています。
traceからpanicまでの7つのレベル、グローバルおよびロガーごとのレベル制御、ログサンプリング、すべてのイベントにフィールドを追加できるフックをサポートしています。Contextとの連携により、ロガーをcontext.Contextに紐付けて後から取得できます。また、hlogパッケージにはnet/httpハンドラー向けのヘルパーが用意されています。さらに、標準のlog/slog APIを使うコードからzerolog経由でレコードを出力できるslog.Handlerも含まれています。
ローカル開発では、zerolog.ConsoleWriterを使ってイベントを色付きの読みやすい行形式で表示できます。ただし、JSON出力より遅いため、本番環境向けではありません。エラーのスタックトレースはpkgerrorsサブパッケージから利用できます。
主な機能
- 01リフレクションを使わず、一般的な処理経路ではアロケーションなしでJSONまたはCBORを出力するチェーンAPI
- 02グローバルなレベル制御に対応した7段階のログレベル
- 03バーストサンプラーや基本サンプラーを含むログサンプリング
- 04すべてのイベントにフィールドを追加するフック
- 05context.Context、net/httpハンドラー、log/slogとの連携
- 06ローカルでの色付き出力に使えるConsoleWriter
ユースケース
- アロケーションのオーバーヘッドが重要な、高スループットのGoサービスでのロギング
- ログ集約システムで取り込む構造化JSONログの出力
- HTTPサーバーのログへのリクエスト単位のフィールド追加
- 既存のslogベースのコードとJSONバックエンドの接続
クイックスタート
- 1
モジュールをインストールする
go get -u github.com/rs/zerolog/log - 2
グローバルロガーをインポートして、メッセージをログに記録する
使う前に知っておきたいこと
- 構造化JSON(またはCBOR)出力に重点を置いています。コンソールで見やすい出力には、効率の低いConsoleWriterが必要です。
収録されている特集
トピック
よくある質問
- zerolog とは?
- チェーンAPI、レベル別・サンプリングログ、任意のCBOR出力を備えた、Go向けのゼロアロケーションJSONロガー。 Zerologは、イベントをJSONで出力するGo向け構造化ロギングライブラリです。ビルドタグを指定すると、CBORでの出力もできます。チェーンAPIを使ってイベントを組み立て、リフレクションを使わずに型安全なキーと値のフィールドを追加します。そのため、ベンチマークで一般的な処理経路のアロケーションをゼロに抑えています。
- zerolog は無料で使えますか?ライセンスは?
- zerolog は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- zerolog は今もメンテナンスされていますか?
- 活発にメンテナンス中。zerolog の最終コミットは 2026年10月14日 です。
- zerolog は何に使えますか?
- アロケーションのオーバーヘッドが重要な、高スループットのGoサービスでのロギング ログ集約システムで取り込む構造化JSONログの出力 HTTPサーバーのログへのリクエスト単位のフィールド追加 既存のslogベースのコードとJSONバックエンドの接続
- zerolog のインストール方法は?
- モジュールをインストールする: go get -u github.com/rs/zerolog/log グローバルロガーをインポートして、メッセージをログに記録する
- zerolog はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/rs/zerolog
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。
見やすいターミナル出力、フィールド優先の構造化JSON、秘密情報のマスキングに対応した、ランタイム依存ゼロのTypeScript・JavaScript向け汎用ロガー。
Deno、Node.js、Bun、ブラウザー、エッジ関数で動作する、依存関係ゼロのJavaScript/TypeScript向けロギングライブラリです。
Pino、Winston、クラウドサービス、ファイル、StatsD、OpenTelemetryへログを送る、統一されたTypeScriptロギングAPIです。
標準のlogging設定を単一のloggerに置き換え、ファイルのローテーション、カラー出力、構造化ログを提供するPythonロギングライブラリ。