Go пакет syslog - сообщения дублируются в разных файлах - PullRequest
0 голосов
/ 13 января 2020

В системе Debian 9 (растянуть), ядро ​​4.14 У меня есть несколько приложений, написанных на Go, которые широко используют ведение журнала. Я обнаружил, что эти сообщения журнала дублируются.

С помощью следующего кода все сообщения журнала записываются в / var / log / messages, /var/log/kern.log и / var / log / syslog

Я думаю, что-то там есть делать с journald и syslog (или rsyslog), выполняющих двойную работу, но я не уверен.

Если это поможет, это стандартный Beaglebone Black, работающий с дистрибутивом Debian.

Как мне остановить запись этих сообщений в kern.log и syslog и просто записать их в сообщения?

package main

import (
    "log"
    "log/syslog"
)

func main() {
    logwriter,e:= syslog.New(syslog.LOG_NOTICE,"testprog")
    if e == nil {
        log.SetOutput(logwriter)
    }
    log.Println("Hello Friend")
}

1 Ответ

0 голосов
/ 13 января 2020

Нашел мою проблему. Так что для тех, у кого такая же проблема.

edit /etc/systemd/journald.conf

Удалить комментарий для строки «ForwardToSyslog = yes» и изменить на «нет». Перезапустите journald

РЕДАКТИРОВАТЬ

На случай, если кто-нибудь найдет это сообщение с той же проблемой, мне понадобится дополнительный шаг. У меня было несколько работающих корзин, которые использовали функции журнала Go. Их нужно было перезапустить, чтобы их журналы правильно отображались в journald.

...