GolangのLogger「zap」の最低限の設定方法




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にブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です