Repolode
rs

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. 1

    モジュールをインストールする

    go get -u github.com/rs/zerolog/log
  2. 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 の数値は毎日更新されます。

関連プロジェクト