【问题标题】:Filter rsyslogd messages过滤 rsyslogd 消息
【发布时间】:2014-07-22 13:12:31
【问题描述】:

我有一个每天生成 15 - 20GB 日志的守护程序。我想使用 syslog (rsyslogd) 来记录所有消息。是否可以将这些消息重定向到文件而不打印/var/log/syslog?

我在 /etc/rsyslogd/50-myprogram.conf 中创建了一条规则,其中包含:

!MYPROGRAM
*.*     /var/local/myprogram/myprogram.log
!*

现在每条消息都会出现两次,分别在 /var/local/myprogram/myprogram.log 和 /var/log/syslog 中。怎么解决?

【问题讨论】:

    标签: c linux ubuntu-server rsyslog


    【解决方案1】:

    我设法做到了:

    if $programname == 'MYPROGRAM' then /var/local/myprogram/myprogram.log
    & ~
    

    这里重要的是:& ~,它会丢弃上一行匹配的消息。

    【讨论】:

      【解决方案2】:

      您可以在配置文件中使用停止规则。

       *.* stop
      

      这将停止进一步处理日志。但请确保在 /var/log/syslog 规则之前包含您的配置。

      【讨论】:

        【解决方案3】:

        试试这个:

        if $programname == 'myprogram' then /var/local/myprogram/myprogarm.log
        

        【讨论】:

        • 请解释您的答案,以使其对读者更有用。
        • 这还不是全部。请看我自己的答案。
        猜你喜欢
        • 2020-03-31
        • 1970-01-01
        • 2017-08-21
        • 2022-06-17
        • 2013-09-16
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多