go现有的log库有什么问题


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

Go中结构化日志的综合指南(1)

Go中结构化日志的综合指南(2)

这张来自上文的图片,更全面总结了原有的log包存在的问题


go语言项目的log/slog是干什么的


chatGPT的回答:

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


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

文档可参考 src/log/slog/doc.go

相关设计由Jonathan Amsterdam提出并开发

相关提案

log/slog: structured, leveled logging

从x/exp移入标准库的初始化提交


Go 1.21新特性前瞻-结构化日志库将要进入标准库了

Go语言爱好者周刊:第 181 期 —— ChatGPT + Golang


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


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

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

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

本文由mdnice多平台发布


好文收藏
38 声望6 粉丝

好文收集