четверг, 16 февраля 2017 г.

rsyslog: писать лог только в 1 файл, не трогая rsyslog.conf

Допустим, есть сервис, который мы хотим писать через syslog в отдельный файл, уровень local2, но чтобы он не засорял /var/log/syslog|/var/log/messages. Создадим /etc/rsyslog.d/sea с текстом local2.* /var/log/sea.log

2 варианта:
1) дописываем в любое место нашего файла
local2.none /var/log/messages
local2.none /var/log/syslog

2) дописываем сразу после правила
&~
(означает - если записали в этот файл, то дальше заканчиваем обработку строки, & это И, ~ это discard). Правил может быть несколько в файле, поэтому ставим именно после тех, где заканчиваем обработку строки.

UP
В свежих версиях в логе можно увидеть
rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Правда, по ссылке нет примеров применения и описания. Выглядеть это будет примерно так:
& stop
Но могут быть проблемы.

Комментариев нет:

Отправить комментарий