我有一个守护进程,每天可以生成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中。怎么解决这个问题?
答案 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
& ~
这里重要的是:& ~
,它会丢弃上一行匹配的邮件。