Repolode
uber-go

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

    go get で zap ライブラリをインストールする

    go get -u go.uber.org/zap
  2. 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 の数値は毎日更新されます。

関連プロジェクト