在系统日志(Raspbian rsyslog swVersion="8.1901.0")中,
我正在尝试将包含特定字符串的系统消息匹配/过滤到/var/log/syslog
(默认)和自定义单独的日志文件,即:/var/log/nut.log
.
我已经能够通过将以下过滤器行放入来实现/etc/rsyslog.conf
:
# NUT logging: Include USB msgs since montoring UPS via only USB
:msg,contains,"USB" /var/log/nut.log
& stop
:msg,contains,"nut-" /var/log/nut.log
& stop
& stop
一旦进行匹配,就需要停止过滤器。我相信首选方法是将其放在专用文件中,即:/etc/rsyslog.d/0-nut.conf
但是,当我这样做时,过滤器会停止记录到/var/log/syslog
,并专门记录到/var/log/nut.log
... ?
有不同的方法可以做到这一点吗?
谢谢!
中的
$IncludeConfig
orinclude()
指令rsyslog.conf
出现在大多数标准规则之前,包括将消息写入的规则/var/log/syslog
。如果您在此文件中的其他规则之后添加您的规则,那么 nut 消息将syslog
在它也匹配并写入之前已经被写入nut.log
。相反,如果您将规则放在单独的文件中,则消息将被写入
nut.log
,然后stop
将跳过后面的规则。答案是不使用stop
。如果问题是消息可能同时包含“USB”和“nut-”,因此被写入两次
nut.log
,那么您需要使用更复杂的语法。旧语法很久以前就被RainerScript取代了。这意味着您可以编写如下过滤器:
这不需要阻止对消息的进一步处理。