一尘不染

记录到多个输出

go

Go语言中有没有办法记录到不同级别的多个输出?

我希望有一个程序可以同时在Info级别记录到stdout并在带有时间戳的调试级别记录一个文件。

就像我每次编写代码一样:

log.Debug("Entering some func")
res := func()
log.Infof("Result was: %s", res)

我可以看到控制台打印:

Result was: Successful

和一个文件:

2015-03-26T01:27:38-04:00 [DEBU]: Entering some func
2015-03-26T01:27:38-04:00 [INFO]: Result was: Successful

我使用logrus和glog,但是找不到此功能。还有其他包装或我可以编码的东西吗?


阅读 221

收藏
2020-07-02

共1个答案

一尘不染

Go-logging支持不同的日志记录后端,例如文件,syslog等。可以设置多个后端,每个后端和记录器具有不同的日志级别。这里的例子。

Lumberjack还可与此一起用于将日志写入滚动文件。这是一个例子

2020-07-02