过滤rsyslogd消息

时间:2014-06-02 12:06:48

标签: c linux ubuntu-server rsyslog

我有一个守护进程,每天可以生成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中。怎么解决这个问题?

3 个答案:

答案 0 :(得分:0)

试试这个:

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

答案 1 :(得分:0)

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

 *.* stop

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

答案 2 :(得分:0)

我设法用:

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

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