package
0.0.0-20240711123734-c091ff3b1106
Repository: https://github.com/khigashiguchi/go-snippets.git
Documentation: pkg.go.dev

# README

sample of logger using zap

patterns

  • global logger

解説

zapのWriteSyncer interface とは

io.Writer interfaceをもち、さらにSync() をシグネチャにもつもの。os.File/os.Stderr/os.Stdoutはこの辺をもっている

// A WriteSyncer is an io.Writer that can also flush any buffered data. Note
// that *os.File (and thus, os.Stderr and os.Stdout) implement WriteSyncer.
type WriteSyncer interface {
	io.Writer
	Sync() error
}

global logger

encodingのオプションをいろいろいじれます。以下、zapのproduction encoding level

	func NewProductionEncoderConfig() zapcore.EncoderConfig {
		return zapcore.EncoderConfig{
			TimeKey:        "ts",
			LevelKey:       "level",
			NameKey:        "logger",
			CallerKey:      "caller",
			MessageKey:     "msg",
			StacktraceKey:  "stacktrace",
			LineEnding:     zapcore.DefaultLineEnding,
			EncodeLevel:    zapcore.LowercaseLevelEncoder,
			EncodeTime:     zapcore.EpochTimeEncoder,
			EncodeDuration: zapcore.SecondsDurationEncoder,
			EncodeCaller:   zapcore.ShortCallerEncoder,
		}
	}

デフォルトでくるキーもいろいろ変えれるよ

# Functions

No description provided by the author