前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go新增的slog: structured, leveled logging

Go新增的slog: structured, leveled logging

作者头像
fliter
发布2023-06-18 11:20:18
7840
发布2023-06-18 11:20:18
举报
文章被收录于专栏:旅途散记旅途散记

go现有的log库有什么问题

Go社区最近对log/slog搞得热火朝天。按我理解,标准库中的log包 功能拉胯(较大痛点如缺少info/warn等日志级别;只能以纯文本形式,不支持JSON等结构化),于是正式项目大多用第三方日志库如logrus,zap等。

这篇文章更全面总结了现有log包存在的问题


go新增的log/slog是干什么的

log/slog 是一个 Go 语言实现的日志库,可以帮助开发人员在应用程序中记录各种信息和调试消息,从而更好地了解应用程序的运行情况。它提供了多种不同的日志级别和灵活的配置选项,可以根据需要将日志输出到文件、控制台或其他第三方工具。slog 相对于标准库中的 log 包来说,拥有更丰富的功能和更高的性能,而且易于使用和扩展。

即将在新版本增加的slog,提供结构化日志功能,很大程度可以认为是第三方日志库的“竞品”。(slog最开始和slices,maps一样位于试验性质的x/exp包,现已过提案,“转正”进入到标准库)

文档可参考 src/log/slog/doc.go (https://github.com/golang/go/blob/master/src/log/slog/doc.go)

相关设计由Jonathan Amsterdam提出并开发 (https://github.com/golang/go/commits?author=jba&before=91b8cc0dfaae12af1a89e2b7ad3da10728883ee1+35)

相关提案 (https://go.googlesource.com/proposal/+/master/design/56345-structured-logging.md?pli=1#)

log/slog: structured, leveled logging (https://github.com/golang/go/issues/56345)

从x/exp移入标准库的初始化提交 (https://github.com/golang/go/commit/f67b0a73e30d4780c90f2a7d7dd659affea99f43)


诸多知名的第三方日志库前景如何?

slog如果能做得足够优秀,兼具logrus的易用和zap,zerolog的高性能(当然恐怕很难既要又要),那后面用户新写项目,可能就不会再用这些第三方日志库---这也可以当成衡量这个新package成败的指标。

有点像当初微信电商生态缺失,于是有了补位的有赞微盟。而假如有天🐧想自己做,势必会有竞争。

大胆预测,过一些年,Go生态最流行的日志库,很可能不再是logrus

Go Team看起来最近有闲,都有心情探讨一下emoji后缀[Lol]…不妨拉一下uber下面的高⭐Go项目,把一些完全可以加到标准库的功能给增加上

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 旅途散记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • go现有的log库有什么问题
  • go新增的log/slog是干什么的
  • 诸多知名的第三方日志库前景如何?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档