如果我在syslog-ng中有一个条目
log { source (src); filter (filter1); filter (filter2); filter (filter3); filter (filter4); destination (all_log) }
而且,说filter4是一个非常宽松的filter, filter3是一个filter来消除一对filter3主机。 如果filter2和/或filter1允许这些令人讨厌的主机之一,它会被logging?
从syslog-ngpipe理员指南(2.0版,这是旧的,但你使用的是什么)
当日志语句包含多个filter语句时,只有在所有filter对于消息都为真的情况下,syslog-ng才会向目标发送消息。 换句话说,滤波器与逻辑AND运算符连接。 在以下示例中,没有消息到达目标,因为这些filter是独占的(客户端的主机名不能同时为example1和example2)。
所以这是有道理的,如果它以任何其他方式工作,这将是太复杂和无证。 所以你将不得不寻找其他的方式来完成你正在做的事情!
一般来说,您希望排除主机的方式是使用not host('HOSTNAME') or (host('HOSTNAME') and level(...) )作为您的filter