我必须在 rsyslog.conf 文件中制定一条规则,以便获取至少注意到优先级但特定路径的错误优先级的邮件日志。
这是我试图为此制定的规则:
mail.notice,!err -/var/log/usomail.log
问题是它也记录了我的错误,但我不想这样做。我的规则有什么问题吗?
答案1
您使用逗号,
来分隔mail.notice
and !err
。然而,这是附加的,所以你是说接受消息 atmail.notice
以及 all!err
。你想说的是接受消息mail.notice
除了mail.err
。
这手册页rsyslog.conf
确实表明了这一点,尽管它并不那么清楚:
您可以使用逗号 (',') 运算符在一条语句中指定具有相同优先级模式的多个设施。您可以根据需要指定任意数量的设施。请记住,仅采用此类语句中的设施部分,将跳过优先部分。
可以使用分号(“;”)分隔符为单个操作指定多个选择器。请记住,选择器字段中的每个选择器都能够覆盖前面的选择器。使用此行为,您可以从模式中排除一些优先级。
因此,解决方案是将逗号替换,
为分号;
并包含该设施,如下所示:
mail.notice;mail.!=err -/var/log/usomail.log
中也有一个类似的例子syslog.conf
手册页也。