Журналы Golang Logrus доступны в консоли, но не отправляются в Loggly.

У меня есть проект golang, и я пытаюсь использовать ведение журнала, как объяснено в их блоге на 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()

и я могу видеть это сообщение в моей учетной записи.

Но если я сделаю что-то вроде этого -

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()? (Потому что я предполагаю, что именно в этот момент логи отправляются на сервер логов)

Дополнительная информация: первый кусок кода находится в main.go внутри main() функция

Второй кусок кода находится в utility.go который имеет утилиту пакета, и я вызываю функцию как utility.LogrusLogger(loglevel, message) куда бы я ни захотел после импорта утилиты пакета в этот файл. Я уверен, что все в порядке, так как я могу видеть журналы в консоли программы.

1 ответ

Решение

Я смог решить эту проблему, объявив следующее глобально

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()
}

Ссылка: /questions/32845753/golang-logrus-kak-sdelat-tsentralizovannuyu-nastrojku/32845769#32845769

Другие вопросы по тегам