我有一个golang项目,我试图用loggly作为日志记录在https://www.loggly.com/blog/logging-to-loggly-from-go-with-logrus-and-logrusly/Golang logrus日志发送到loggly
的问题在他们的博客中解释是,他们的例子,事情好,但我有一堆文件和几十个函数(处理API调用),我不想每次都重新初始化记录器实例。
这工作完全在main.go
log := logrus.New()
hook := logrusly.NewLogglyHook(logglyToken, domain, logrus.WarnLevel, logglyUsername, logglyPassword)
log.Hooks.Add(hook)
log.Info("Welcome")
hook.Flush()
,我能够在我loggly帐户看到这则消息。
但是,如果我做这样的事情 -
func LogrusLogger(loglevel string, message interface{}){
log := logrus.New()
hook := logrusly.NewLogglyHook(logglyToken, domain, logrus.WarnLevel, logglyUsername, logglyPassword)
log.Hooks.Add(hook)
log.Info(loglevel, message)
hook.Flush()
}
然后在调用此功能,日志可以在程序控制台看到,但不是在帐户中指定loggly。 我是否正确调用了hook.Flush()? (因为我假定这就是日志被发送到loggly服务器点)
附加信息: 代码的第一件作品是在main.go
的main()
函数内部
代码的第二件作品是在utility.go
它有一个程序包实用程序,我把这个函数称为utility.LogrusLogger(loglevel, message)
,只要我想要在该文件中导入程序包实用程序。 我很确定事情没有问题,因为我能够在程序控制台中看到日志。