排除所有其他系统日志设施

我在syslog中添加了local0上的一些自定义日志logging。

将这些消息写入特定的日志很容易,在我的syslog.conf中

local0.* -/var/log/my.log

但是,我怎样才能从所有其他日志排除local0? 在我当前的设置中,local0消息也显示在/ var / log / syslog中,因为它被指定为

*.*;auth,authpriv.none -/var/log/syslog

我是否需要通过所有其他默认日志并添加local0.none,还是有某种全局排除我可以使用?

在系统日志中,我担心你的假设是正确的,你必须添加local0.none到不需要local0的syslog行。

如果你正在寻找其他的selectrsyslog现在都在(所有的酷小孩都喜欢它),并会实际上让你做你所要求的( 在这里检查)。

此外, syslog-ng允许你做你想要的东西,甚至有一些非常酷的string过滤( 在这里检查),我使用它在我的日志收集器服务器上进行高级syslogging。

syslogd手册页指出,感叹号用作排除指定优先级的符号,并且“您可以直观地使用它作为exception说明符”。 给出的例子是

 mail.*;mail.!=info /usr/adm/mail 

它将logging除“info”优先级以外的所有邮件。 所以,为了你的问题,我会使用

 *.*;local0.!debug;auth,authpriv.none /var/log/syslog 

或者更可读,

 *.*;local0.none;auth,authpriv.none /var/log/syslog 

但是,你应该知道我无法testing这个。