Documentation
¶
Overview ¶
Package zaplogfmt provides a logfmt encoder for zap (https://github.com/uber-go/zap)
Example (Array) ¶
package main import ( "os" zaplogfmt "github.com/allir/zap-logfmt" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func main() { config := zap.NewProductionEncoderConfig() config.TimeKey = "" logger := zap.New(zapcore.NewCore( zaplogfmt.NewEncoder(config), os.Stdout, zapcore.DebugLevel, )) logger.Info("counting", zap.Ints("values", []int{0, 1, 2, 3})) }
Output: level=info msg=counting values=[0,1,2,3]
Example (NewEncoder) ¶
package main import ( "os" zaplogfmt "github.com/allir/zap-logfmt" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func main() { config := zap.NewProductionEncoderConfig() config.TimeKey = "" logger := zap.New( zapcore.NewCore( zaplogfmt.NewEncoder(config), zapcore.Lock(os.Stdout), zapcore.DebugLevel), zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel), ).Named("main") defer logger.Sync() logger.Info("Hello World") }
Output: level=info logger=main caller=zap-logfmt/example_test.go:24 msg="Hello World"
Example (Object) ¶
package main import ( "os" zaplogfmt "github.com/allir/zap-logfmt" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) type Person struct { First string Last string Age int } func (p Person) MarshalLogObject(enc zapcore.ObjectEncoder) error { enc.AddString("first", p.First) enc.AddString("last", p.Last) enc.AddInt("age", p.Age) return nil } func main() { config := zap.NewProductionEncoderConfig() config.TimeKey = "" logger := zap.New(zapcore.NewCore( zaplogfmt.NewEncoder(config), zapcore.Lock(os.Stdout), zapcore.DebugLevel, )) defer logger.Sync() person := Person{First: "Arthur", Last: "Dent", Age: 42} logger.Warn("hitchhiker discovered", zap.Object("identity", person)) }
Output: level=warn msg="hitchhiker discovered" identity="first=Arthur last=Dent age=42"
Example (Register) ¶
package main import ( zaplogfmt "github.com/allir/zap-logfmt" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func main() { zaplogfmt.Register() zapConfig := zap.NewProductionConfig() zapConfig.Encoding = "logfmt" zapConfig.OutputPaths = []string{"stdout"} // Need to log to stdout for the test zapConfig.EncoderConfig = zap.NewProductionEncoderConfig() zapConfig.EncoderConfig.TimeKey = "" zapConfig.EncoderConfig.EncodeTime = zapcore.RFC3339TimeEncoder logger, err := zapConfig.Build() if err != nil { panic(err) } defer logger.Sync() logger = logger.Named("reg") logger.Info("Hello World") }
Output: level=info logger=reg caller=zap-logfmt/example_test.go:47 msg="Hello World"
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewEncoder ¶
func NewEncoder(cfg zapcore.EncoderConfig) zapcore.Encoder
NewEncoder creates an encoder interface for zap that writes logfmt formatted log entries.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.