zapとは
zapはUberがOSSで作っているLoggerです。GitHubに記載されているベンチマーク結果を見ると他のLoggerよりも高速に動作するようです。実際、使いやすいですし、zapが今の所ところ一番使われているかと思います。

メリット
- すぐ使い始められる。
- 設定が簡単
デメリット
- ログレベルごとにログの出力先を変更できない
- わかりやすいドキュメントがない
インストール
go getでインストールします。
$ go get -u go.uber.org/zap
設定
一番簡単なLoggerの生成はこれです。zapのデフォルト設定でLoggerを生成できます。
// Development用Logger logger, _ := zap.NewDevelopment() // Production用Logger logger, _ := zap.NewProduction()
各設定はこのようになっています。
// Development設定 func NewDevelopmentConfig() Config { return Config{ Level: NewAtomicLevelAt(DebugLevel), Development: true, Encoding: "console", EncoderConfig: NewDevelopmentEncoderConfig(), OutputPaths: []string{"stderr"}, ErrorOutputPaths: []string{"stderr"}, } } // Productoin設定 func NewProductionConfig() Config { return Config{ Level: NewAtomicLevelAt(InfoLevel), Development: false, Sampling: &SamplingConfig{ Initial: 100, Thereafter: 100, }, Encoding: "json", EncoderConfig: NewProductionEncoderConfig(), OutputPaths: []string{"stderr"}, ErrorOutputPaths: []string{"stderr"}, } }
この設定を変更したい場合はこのように簡単にできます。
config := zap.NewProductionConfig() config.Level = zap.NewAtomicLevelAt(zap.DebugLevel) //出力するログレベルをDebugレベルに変更
まとめ
zapはたったこれだけですぐに使うことができます。より便利な使い方を今後追記していきます!
The following two tabs change content below.
髙妻智一
2013年CyberAgent新卒入社
スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。
2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す