我有一個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)
,只要我想要在該文件中導入程序包實用程序。 我很確定事情沒有問題,因爲我能夠在程序控制臺中看到日誌。