近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。
本节我们分享一个在Golang中比较常用的组件,日志组件zap,相比于其他日志组件,它的效率更加高效,以下是其官方对比结果:
在使用方面,相比于内置的log包来讲有一定的复杂度,但在初始框架时我们肯定还要对其做一下简单的封装,便于其他各个模块进行快速使用,下面是其官方使用案例:
logger, _ := zap.NewProduction()
defer logger.Sync() // 刷新缓冲区
sugar := logger.Sugar()
sugar.Infow("failed to fetch URL",
// 将上下文结构化为松散类型的键值对。
"url", url,
"attempt", 3,
"backoff", time.Second,
)
sugar.Infof("Failed to fetch URL: %s", url)
logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("failed to fetch URL",
// 结构化上下文作为强类型的字段值。
zap.String("url", url),
zap.Int("attempt", 3),
zap.Duration("backoff", time.Second),
)
更多使用方式和框架中的封装方式,可以参考我的其他文章,FastDevelopGo框架,和其相关的Golang快速开发框架——增加日志组件zap(三),后续在使用过程中还会进行调整,建议直接参见框架中的源代码和其中的注释,能带来更好的帮助。
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。