C 过滤rsyslogd消息
我有一个每天生成15-20GB日志的守护程序。我想使用syslog rsyslogd来记录所有消息。是否可以将这些消息重定向到文件而不打印/var/log/syslog 我在/etc/rsyslogd/50-myprogram.conf中创建了一条规则,其中包含:C 过滤rsyslogd消息,c,linux,ubuntu-server,rsyslog,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/l
!MYPROGRAM
*.* /var/local/myprogram/myprogram.log
!*
现在,每条消息都出现两次,分别出现在/var/local/myprogram/myprogram.log和/var/log/syslog中。如何解决这个问题?试试这个:
if $programname == 'myprogram' then /var/local/myprogram/myprogarm.log
您可以在配置文件中使用停止规则
*.* stop
这将停止进一步处理日志。但请确保在/var/log/syslog规则之前包含您的配置。
if $programname == 'MYPROGRAM' then /var/local/myprogram/myprogram.log
& ~
这里重要的一点是:&~,它将丢弃与前一行匹配的消息。请解释您的答案,使其对读者更有用。这并不是所需的全部。请看我自己的答案。