В Ubuntu 18.04 с rsyslogd 8.32.0,
Чтобы переместить записи журнала из моей службы с именем "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), в то время как он делает это.
Другими словами, он должен переместить сообщение в новый файл, а не копировать их.
Я также пробовал использовать синтаксис старого правила с тем же результатом.
:programname, isequal, "mqtt433" /var/log/mqtt433.log
& stop
Также я безуспешно пытаюсь использовать устаревший синтаксис
& ~
вместо
& stop
.
Что я делаю не так?