Rsyslog,排除日志

Rsyslog,排除日志

我有一个自定义守护进程,它将日志发送到 rsyslog 设施“local1”,具有两个安全级别 - “info”和“debug”。我需要将“info”日志写入 /var/log/info,将“debug”日志写入 /var/log/debug。

我编辑了 rsyslog.conf

local1.*;local1.debug       /var/log/info.log

local1.debug                /var/log/debug.log

当守护进程提供“info”日志时,它工作正常,它会写入 info.log 并且 debug.log 为空。但是当我获得“debug”日志时,它会写入两个文件。

帮助我从 info.log 中排除调试日志。

;local1.=debug不起作用。我也试过写

local1.!debug /var/log/info.log 

但仍然不起作用(在此配置信息日志中为空)

rsyslog 8.24.0-12

Centos 7.4

更新

local1.info                     /var/log/info.log
local1.debug;local1.info        /var/log/debug.log

也不行,信息进入 info.log,没问题。但在 debug.log 中有 info+debug,我无法从中排除信息。;local1.info不工作

答案1

密钥在手册页中:

原始 BSD syslogd 的行为是,根据给定的操作记录所有指定优先级及更高优先级的消息。Rsyslogd 的行为相同,但有一些扩展。

因此,如果您想排除调试,只需说明下一个最高优先级,即信息:

local1.info       /var/log/info.log

这意味着所有优先级为 info 及更高的消息都将发送到 /var/log/info.log。

对于调试日志,解决方案也在手册页中:

您可以在每个优先级前面加上等号(“=”),以仅指定此单个优先级,而不指定上述任何一个优先级。

所以这一行应该是

local1.=debug       /var/log/debug.log

仅获取调试消息。

相关内容