Go syslog 包 - 消息在不同文件中重复三次

Posted

技术标签:

【中文标题】Go syslog 包 - 消息在不同文件中重复三次【英文标题】:Go syslog package - messages being triplicated in different files 【发布时间】:2020-01-13 00:20:27 【问题描述】:

在 Debian 9 (stretch) 系统,4.14 内核上,我有一些用 Go 编写的应用程序,它们广泛使用日志记录。我发现这些日志消息被重复了三次。

使用以下代码,所有日志消息都写入 /var/log/messages 、 /var/log/kern.log 和 /var/log/syslog

我认为这与 journald 和 syslog(或 rsyslog)的双重职责有关,但我不确定。

如果有帮助,这是一个运行 Debian 发行版的 Beaglebone Black。

如何阻止将这些消息写入 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】:

发现我的问题。所以对于任何有同样问题的人。

编辑 /etc/systemd/journald.conf

删除“ForwardToSyslog=yes”行的注释并更改为 no。重启日志

编辑

万一有人发现这条消息有同样的问题,我需要一个额外的步骤。我有一些正在使用 Go 的日志功能的运行箱。必须重新启动它们的日志才能在日志中正确显示。

【讨论】:

以上是关于Go syslog 包 - 消息在不同文件中重复三次的主要内容,如果未能解决你的问题,请参考以下文章

如何使用syslog向服务器协议

linux syslog详解 转

linux日志系统介绍 —— syslog(),openlog(),closelog()

Go 入门很简单:如何在 Go 中使用日志包

无法使多行 rsyslog 语句将传入的 syslog 过滤到不同的文件

Mule Syslog 入站端点