gpt4 book ai didi

logging - Golang logrus 日志在控制台中可用但未发送到 loggly

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:41 26 4
gpt4 key购买 nike

我有一个 golang 项目,我正在尝试使用 loggly 日志记录,正如他们在 https://www.loggly.com/blog/logging-to-loggly-from-go-with-logrus-and-logrusly/ 的博客中所解释的那样

问题是,对于他们的示例,一切都很好,但我有一堆文件和许多函数(处理 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() 函数中的 main.go

第二段代码在 utility.go 中,它有一个 package utility,我在之后的任何地方都将函数称为 utility.LogrusLogger(loglevel, message)在该文件中导入包实用程序。我很确定一切都很好,因为我能够在程序控制台中看到日志。

最佳答案

我能够通过在全局范围内声明以下内容来解决问题

log := logrus.New()
hook := logrusly.NewLogglyHook(logglyToken, domain, logrus.WarnLevel, logglyUsername, logglyPassword)

然后使用这样的函数-

func LogrusInfo(args ...interface{}) {
logger.Hooks.Add(hook)
logger.Info(args...)
hook.Flush()
}

引用:https://stackoverflow.com/a/30261304/4720042

关于logging - Golang logrus 日志在控制台中可用但未发送到 loggly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com