package
0.0.0-20230821080651-fc75448f56f8
Repository: https://github.com/researchlab/gbp.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

log best practices

zap 有两种格式

  • zap.Logger 使用结构体的格式来记录(性能比较高)
  • zap.SugaredLogger 使用传统的 printf 的格式来记录(性能相较上一种低)

zap 打印一条日志的大致流程

  • 通过 zapcore.Entry 结构体生成一条信息
  • 通过 zapcore.Core 的 check 函数检查日志级别,产生一个zapcore.CheckEntry 对象
  • 根据日志级别判断是否需要 panic 和 fatal 并退出应用
  • 通过zapcore.Option 的设置,zap.AddCaller(),zap.AddStacktrace(1) 或其他自定义的 fields
  • 通过 Encoder 为 zapcore.CheckEntry() 提供编码器,通过 EncodeEntry 方法吧 zapcore.Entry 和 zapcore.Fields 转成最后输出格式,json 和 console 转成 buffer.Buffer, memory encode 转成 map

zap 自带的日志记录器

  • zap.NewProduction()
  • zap.NewDevelopment()
  • zap.NewExample()

zap 自定义日志记录器

  • 通过 build 创建日志记录器
  • 通过 zap.New 创建日志记录器