Zap之日志记录器
zap是非常火的一款 golang 日志记录器。
在Zap中存在两个日志器模式:
Logger
SugaredLogger
这两种模式的最大区别在于是否类型安全,SugarLogger可以接收松散类型和多键值对:
//在第四行可以看到sugar的信息记录不需要显式的声明变量类型
sugar := zap.NewExample().Sugar()
defer sugar.Sync()
sugar.Infow("failed to fetch URL",
"url", "http://seaxiang.com",
"attempt", 3,
"backoff", time.Second,
)
sugar.Infof("failed to fetch URL: %s", "http://.com")
与之对应了 Logger
需要显式的声明日志变量(strongly-typed)的类型:
同时,官方建议在高性能场景使用 Logger
,其性能比 sugarLogger
要高。
logger := zap.NewExample()
defer logger.Sync() //默认logger是使用无缓冲的,但是可以设置为有缓冲的,所以要习惯于使用defer关闭日志变量
logger.Info("failed to fetch URL",
zap.String("url", "http://seaxiang.com"),
zap.Int("attempt", 3),
zap.Duration("backoff", time.Second),
)
Logger
和 sugarLogger
的相互转换
logger := zap.NewExample()
defer logger.Sync()
sugar := logger.Sugar()
plain := sugar.Desugar()
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦