ページ内ナビ
概要
ZapはGo向けのstructured logging libraryです。reflectionやallocationを抑えたtyped Loggerと、key-value・printf形式を扱えるSugaredLoggerを提供し、JSON encoder、log level、sampling、Core構成を組み合わせてproduction loggingを構築できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
typed Fieldでreflectionを避けたstructured logを出力する
Loggerはzap.String、zap.Int、zap.Duration等のtyped Fieldを受け取り、performanceと型安全性を重視したstructured loggingを構成できます。
出典:[2]
SugaredLoggerとCore/Encoderでergonomicsと出力構成を調整する
SugaredLoggerはloosely typedなkey-valueやprintf形式を提供します。CoreやEncoderを組み合わせることでlevel、sink、encoding等のlogging pipelineを構成できます。
出典:[2]
向いている用途
高throughput backendでstructured logging overheadを抑えたい場合に向く
request pathやworker loopなどlog量が多いGo serviceで、JSON structured logとlevel管理を保ちながらallocationやserialization overheadを抑えたい場合に適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]uber-go/zap — GitHub repository(2026-10-06)
- [2]Zap v1.28.0 — README(2026-10-06)
- [3]Zap v1.28.0 — go.mod(2026-10-06)
- [4]Zap v1.28.0 release(2026-10-06)
- [5]Zap MIT license(2026-10-06)
編集部からの補足
hot pathではtyped Logger、柔軟なkey-valueやprintf形式が欲しい箇所ではSugaredLoggerと使い分けられます。benchmark数値だけでなく、実際のfield数・encoder・sink・sampling条件でlogging overheadを測るのが適切です。
3ステップで試す
- 1
ソースを取得
git clone --depth 1 https://github.com/uber-go/zap.git - 2
リポジトリへ移動
cd zap - 3
公式手順を確認
READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
成長
成長の推移 · 直近30日
24,664 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 3
- Open PR
- 73
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Sentry Cocoa1,124 Stars
共通タグ 1件 · 共通カテゴリ 2件
Apple appのerror・crash・performance情報を収集しSentryへ送信する公式SDK
Swift - Lazygit82,894 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
stage・commit・branch・rebase・worktree・reflog操作をkeyboard中心のterminal UIへ集約するGit client
Go - zerolog12,514 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
zero-allocation志向のchaining APIでJSON/CBOR log eventを組み立てるGo logger
Go - Grafana Loki28,990 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Prometheus風label indexで大量logを集約し、LogQL・Grafana・multi-tenant運用へつなぐlog backend
Go - opa12,323 Stars
共通タグ 2件 · 同じ言語
認可や構成ルールをRegoで記述し、アプリから分離して判定する
Go - ZEN Engine2,037 Stars
共通タグ 2件
業務判断を一つのJSONで定義し、複数の実行環境へ届ける
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。