在带有rsyslogd 8.32.0的Ubuntu 18.04上,
为了从名为“ mqtt433”的服务中删除日志条目,我将以下内容添加到了/etc/rsyslog.d/50-default.conf:
if $programname == 'mqtt433' then {
action(type="omfile" File="/var/log/mqtt433_log.log")
stop
}
会创建文件/var/log/mqtt433_log.log,并按预期将来自服务的日志消息附加到该文件。在我的理解中,它不应该执行的操作是,它不应将行保留在默认文件(/ var / log / syslog)中。
换句话说,它应该move消息到新文件,而不是copy它们。
我也尝试了旧规则语法,但结果相同。
:programname, isequal, "mqtt433" /var/log/mqtt433.log
& stop
还尝试过时的语法
& ~
代替
& stop
没有运气。
我在做什么错?
请确保先读取您的conf文件,然后再执行其他任何规则。例如,检查/etc/rsyslog.d/
目录中没有较早的文件,并且rsyslog.conf
行之前的$IncludeConfig /etc/rsyslog.d/*.conf
行中没有包含任何配置的过滤规则。通常,规则放置在## RULES ##
注释之后,并按照出现的顺序执行。