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,但找不到这个功能。是否有其他包或我能编码的东西?
答案 0 :(得分:6)
Go-logging支持不同的日志后端,如文件,系统日志等。可以为每个后端和记录器设置不同日志级别的多个后端。 示例here。
Lumberjack也可用于将日志写入滚动文件。这是一个example。
答案 1 :(得分:1)
如果你使用go-logging库,你可以设置两个“后端”,它们将写入stdout和一个文件。
我会在这里复制一些代码,但wiki上的示例完全符合您的要求。