目前,控制命名日志消息处置的 /etc/rsyslog.conf 内容如下:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;;kern.none /var/log/messages
将以下内容放入正面该部分正确地将“命名”消息写入 /var/log/named/named.log。
# Write named/bind messages to their own log file
:programname, isequal, "named" /var/log/named/named.log
问题是那些“命名”消息仍然被写入 /var/log/messages 文件。我该如何修改生成 /var/log/messages 的行以不写出“命名”消息?
注意:这是 RHEL/CentOS 6 附带的 rsyslog v5。
附录:以下接受的答案是
# Write named/bind messages to their own log file, then discard (tilde)
:programname, isequal, "named" /var/log/named/named.log
:programname, isequal, "named" ~
答案1
如果您想进行一些通用处理但排除某些特定事件,使用否定会很有用。您可以结合使用丢弃操作。示例如下:
。/var/log/allmsgs-包括-informational.log
:msg,包含,“信息性”〜
。/var/log/allmsgs-but-informational.log
不要忽略第 2 行中的红色波浪线!在此示例中,所有消息都写入文件 allmsgs- including-informational.log。然后,所有包含字符串“informational”的消息都将被丢弃。这意味着“丢弃行”(我们示例中的第 2 行)下面的配置文件行将不会应用于此消息。然后,所有剩余行也将写入文件 allmsgs-but-informational.log。