OSS探訪GitHubでログイン

typed FieldとSugaredLoggerを使い分ける高性能Go structured logger

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
24,664
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/09/16
ページ内ナビ

概要

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]

導入前の確認

v1.28.0はGo 1.19を指定。README上のsupport policyは直近2 minor Go version

v1.28.0のgo.modはGo 1.19を指定しますが、READMEはZapが直近2 minor versionのGoのみsupportするとしています。1.28.0ではwrite前にentryを変換できるCheckPreWriteHook/CheckedEntry.Beforeが追加されているため、custom CoreやHookを使う場合はentry mutation順序を回帰確認してください。

出典:[3][2][4]

参考にした公式資料

  1. [1]uber-go/zap — GitHub repository(2026-10-06)
  2. [2]Zap v1.28.0 — README(2026-10-06)
  3. [3]Zap v1.28.0 — go.mod(2026-10-06)
  4. [4]Zap v1.28.0 release(2026-10-06)
  5. [5]Zap MIT license(2026-10-06)
編集部からの補足

hot pathではtyped Logger、柔軟なkey-valueやprintf形式が欲しい箇所ではSugaredLoggerと使い分けられます。benchmark数値だけでなく、実際のfield数・encoder・sink・sampling条件でlogging overheadを測るのが適切です。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/uber-go/zap.git
  2. 2

    リポジトリへ移動

    cd zap
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

24,664 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
3
Open PR
73

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • golang
  • logging
  • structured-logging
  • zap
Stars
24,664
Forks
1,567
Watchers
246
Open Issues
123
Contributors
143
所有者種別
Organization
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/09/16

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?