为了账号安全,请及时绑定邮箱和手机立即绑定

具有文件记录功能的可配置记录器

具有文件记录功能的可配置记录器

Go
12345678_0001 2021-11-29 15:37:47
我正在寻找 Go 中的日志库,类似于 java 中的 log4j。据我了解,'log' 包中的内置记录器在配置和日志级别方面的可能性受到限制。也许有人使用了https://godoc.org/github.com/op/go-logging、https://github.com/cihub/seelog 之一?并发问题呢?在系统中存储记录器的最佳方法是什么?每个程序一个还是每次都创建记录器?谢谢!
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我敢向您推荐我自己的记录器,它不仅支持日志级别,还支持更精细的日志内容选择。

https://github.com/nikandfor/tlog#conditional-logging


查看完整回答
反对 回复 2021-11-29
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

std liblog包为您处理了很多。您可以通过执行以下操作登录到 STDOUT/STDERR 或设置日志包本身的输出:


log.SetOutput(<something that implements io.Writer>)

log.Println("some message")

并且根据 io.Writer 是什么(即 os.File、net.TCPConn、net.UDPConn 等),它会向它记录“一些消息”。


这也可以像这样在每个记录器的基础上完成


logger := log.New(<something that implements io.Writer>, <log prefix string>, <log flags https://golang.org/pkg/log/#pkg-constants>)

logger.Println("Some message")

这个例子将完成同样的事情,并为每个日志添加一个前缀。第二个示例是一个结构体而不是包中的函数,因此必须正确地在 Goroutines 之间共享。这个例子可以通过让每个级别都是它自己的记录器实例来实现日志级别。


还值得一看 logrus https://github.com/Sirupsen/logrus它为您处理了很多样板。


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信