package main import ( "context" "errors" "fmt" "gogs.tyduyong.com/duyong/dy-pkg/app/options" "gogs.tyduyong.com/duyong/dy-pkg/logs" ) func main() { simple() use() } func simple() { logs.Infof("this is a test log, message: %s", "good") logs.Debug("this is debug message", logs.String("name", "duyong")) logs.Debugf("this is debugf message:%s", "debugf") logs.Error("this is error message", logs.Err(errors.New("name not found"))) fmt.Println(123) } func use() { opts := &options.LogOptions{ Level: "debug", Format: "console", EnableColor: true, DisableCaller: true, OutputPaths: []string{"test.log", "stdout"}, ErrorOutputPaths: []string{"stdout"}, // 这个路径指的是zap内部错误时输出的位置。而不是zap打印error日志的输出位置。 } logs.Init(opts) defer logs.Flush() // 这个地方可以定义中间件 ctx := context.WithValue(context.Background(), logs.KeyRequestID, "123456") ctx = context.WithValue(ctx, logs.KeyUsername, "adu") logs.L(ctx).Debug("this is debug message", logs.String("name", "duyong")) logs.L(ctx).Info("this is info message", logs.String("name", "duyong")) logs.L(ctx).Error("this is error message", logs.String("name", "duyong")) logs.L(ctx).Fatal("this is fatal message", logs.String("name", "duyong")) }