if 语句显然在 rsyslog 中不起作用

if 语句显然在 rsyslog 中不起作用

我正在尝试使用RainerScript 语法在我的 Debian/etc/rsyslog.conf文件中。我想将守护进程的内容记录到特定文件,但仅限于pppd.这是我添加的内容:

if $programname == 'pppd' then {
    daemon.*;local2.*   -/var/log/pppd.log
}

然后我重新启动了 rsyslog 服务。东西确实被记录到这个文件中;然而我也从中得到了一些东西,named所以该if声明要么似乎被忽略,要么总是评估为真。为什么会是其中任何一个?我在代码中犯了错误吗?

答案1

尝试:

if $programname == 'pppd' and $syslogfacility-text =='daemon' and $syslogfacility-text == 'local2' then /var/log/pppd.log
if $programname == 'pppd' then ~

第 1 行表示记录到文件 /var/log/pppd.log

第 2 行表示“确定停止记录到文件”,因为不再有日志文件,波浪号实际上意味着“丢弃”。

相关内容