在自己写一个 demo 项目的时候, go 中好像没有 Java 中的 SLF4J 这样统一的日志接口. 在碰到引用第三方的包(像 viper)中使用的日志, 这样日志是不是就是分散的.

举报· 1037 次点击
登录 注册 站外分享
9 条回复  
totoro52 小成 2025-3-14 12:35:54
go 的日志一直是个大问题
Ayanokouji 小成 2025-3-14 12:39:00
go 的 log 和 error ,一言难尽,只能多体会,没有统一解决方案
javalaw2010 小成 2025-3-14 12:39:32
一般完善一点的库都有设置 logger 的接口,你可以用自己喜欢的 log 库,实现别人的接口然后 set 进去。 go 的标准库其实提供了统一的 logger 接口和实现 slog ,但是历史遗留比较多,很多人不愿意用。 go 本身语言特性不是很丰富,所以写代码讲究一个随心所欲,快糙猛就是干,宗旨就是能跑就行。
BenHunDun 楼主 初学 2025-3-14 12:41:13
@Ayanokouji @totoro52 因为没有接触过实际项目, 这样的话, 是不是在实际开发时, 第三方包如果没有出问题, 并不会过多的去关注第三方包的 log
Ayanokouji 小成 2025-3-14 12:42:22
@BenHunDun 完全不关注,而且一些 lib 压根就没有日志,你要关心的可能就是 web 框架的日志
totoro52 小成 2025-3-14 12:43:30
@BenHunDun https://i.imgur.com/L62ZP7V.png 正规的包大部分不会输出 log 的,除非是成型的第三方组件的,反正百花齐放就对了
BenHunDun 楼主 初学 2025-3-14 12:45:13
很感谢回答, 自己再自身多感受 go 中 log 使用
tairan2006 小成 2025-3-14 13:41:25
你现在的话就用 slog 完事 但是之前有很多第三方 log 库,就比较乱
lekai63 小成 2025-3-14 13:43:04
go 自己的 log 够用,但又似乎没那么好用。—— 也许是我不会用 反正还是用 viper 吧
返回顶部