为什么不能使用rsyslog`stop`丢弃消息?

时间:2019-07-01 14:57:14

标签: rsyslog

这是我的rsyslog过滤器:

if $syslogtag == 'mytag:' then {
*.!warning stop
}

我认为这应该丢弃优先级为warning或更小的带有“ mytag”标签的所有消息。因此,我尝试了debugwarningerror日志,但是所有三个消息都出现在/var/log/messages上。我已经在其他地方成功使用了类似的标签过滤器,*.* stop似乎将所有优先级的消息都丢弃了,那又怎么办?

1 个答案:

答案 0 :(得分:1)

我认为我偶然发现了答案;过滤器必须是这样:

if $syslogtag == 'mytag:' then {
*.debug;*.!warning stop
}

这表示“优先调试或更高优先级”和“优先警告或更低优先级”已应用操作“停止”。似乎很奇怪,我必须有效地“全选然后筛选”;我本来希望负过滤器的起点是“一切”,但显然不是!

syslog.conf(sic)的手册页包含一个示例;寻找包含

的示例
kern.info;kern.!err          /var/adm/kernel-info