チェーンAPI、レベル別・サンプリングログ、任意のCBOR出力を備えた、Go向けのゼロアロケーションJSONロガー。
uber-go/zap
Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。
- スター
- 24,678
- フォーク
- 1,575
- 未解決の Issue
- 201
- 最終コミット
- 先月
これは何?
Zapは、型付きのキーと値のフィールドを持つ構造化ログを出力し、ログレベルにも対応するGo向けのロギングライブラリです。リフレクションベースのシリアライズや文字列フォーマットがCPUコストとメモリアロケーションを大きく増やす、ホットパスでログを出力するアプリケーションを想定しています。
Zapは2種類のAPIを提供します。Loggerは型安全なField値を使い、ほとんどの呼び出しでアロケーションを回避します。一方、SugaredLoggerは柔軟な型のキーと値のペアやprintf形式のフォーマットを受け付け、パフォーマンスへの影響はわずかです。どちらもリフレクションを使わないJSONエンコーダーを基盤としています。プロジェクト独自のベンチマークスイートでは、zerolog、slog、logrusなどのパッケージと性能を比較しています。
ライブラリのドキュメントはpkg.go.devで公開されており、APIは安定版として扱われています。1.x系列では破壊的変更を予定していません。Goの最新2つのマイナーバージョンが必要です。
主な機能
- 01型安全なField値を使った構造化ログ。
- 02柔軟な型のキーと値、およびprintf形式のAPIを備えたSugaredLogger。
- 03リフレクションを使わない、ゼロアロケーションのJSONエンコーダー。
- 04本番環境向けと開発環境向けのプリセットを備えた、ログレベル対応。
ユースケース
- アロケーションのオーバーヘッドが重要となる、レイテンシに敏感なGoサービスでのロギング。
- ログ集約システムが解析できるJSONログの出力。
- バックエンドサービスのリクエストに構造化コンテキストフィールドを追加。
クイックスタート
- 1
go get で zap ライブラリをインストールする
go get -u go.uber.org/zap - 2
本番用ロガーを作成し、SugaredLogger でログを記録する
使う前に知っておきたいこと
- Go の最新のマイナーバージョン 2 つのみをサポートします。
収録されている特集
トピック
よくある質問
- zap とは?
- Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。 Zapは、型付きのキーと値のフィールドを持つ構造化ログを出力し、ログレベルにも対応するGo向けのロギングライブラリです。リフレクションベースのシリアライズや文字列フォーマットがCPUコストとメモリアロケーションを大きく増やす、ホットパスでログを出力するアプリケーションを想定しています。
- zap は無料で使えますか?ライセンスは?
- zap は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- zap は今もメンテナンスされていますか?
- 半年以内に更新あり。zap の最終コミットは 2026年9月16日 です。
- zap は何に使えますか?
- アロケーションのオーバーヘッドが重要となる、レイテンシに敏感なGoサービスでのロギング。 ログ集約システムが解析できるJSONログの出力。 バックエンドサービスのリクエストに構造化コンテキストフィールドを追加。
- zap のインストール方法は?
- go get で zap ライブラリをインストールする: go get -u go.uber.org/zap 本番用ロガーを作成し、SugaredLogger でログを記録する
- zap はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/uber-go/zap
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
見やすいターミナル出力、フィールド優先の構造化JSON、秘密情報のマスキングに対応した、ランタイム依存ゼロのTypeScript・JavaScript向け汎用ロガー。
拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。
標準のlogging設定を単一のloggerに置き換え、ファイルのローテーション、カラー出力、構造化ログを提供するPythonロギングライブラリ。
Deno、Node.js、Bun、ブラウザー、エッジ関数で動作する、依存関係ゼロのJavaScript/TypeScript向けロギングライブラリです。
Pino、Winston、クラウドサービス、ファイル、StatsD、OpenTelemetryへログを送る、統一されたTypeScriptロギングAPIです。