Прямо сейчас содержимое файла /etc/rsyslog.conf, который управляет размещением названных сообщений журнала, выглядит так:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;;kern.none /var/log/messages
Помещая следующее в фронт этого раздела правильно записывает "именованные" сообщения в /var/log/ named/ named.log.
# Write named/bind messages to their own log file
:programname, isequal, "named" /var/log/named/named.log
Проблема в том, что эти «именованные» сообщения все еще записываются в файл / var / log / messages. Как мне изменить строку, генерирующую / var / log / messages, чтобы не записывать "именованные" сообщения?
Примечание. Это rsyslog v5, поставляемый с RHEL / CentOS 6.
Приложение: принятый ниже ответ
# Write named/bind messages to their own log file, then discard (tilde)
:programname, isequal, "named" /var/log/named/named.log
:programname, isequal, "named" ~
Использование отрицания может быть полезно, если вы хотите выполнить некоторую общую обработку, но исключить некоторые конкретные события. Вы можете использовать действие сброса вместе с этим. Образец будет:
. /var/log/allmsgs-including-informational.log
: msg, contains, "информационный" ~
. /var/log/allmsgs-but-informational.log
Не пропустите красную тильду в строке 2! В этом примере все сообщения записываются в файл allmsgs-включая-informational.log. Затем все сообщения, содержащие строку «информационный», отбрасываются. Это означает, что строки файла конфигурации под «строкой сброса» (номер 2 в нашем примере) не будут применяться к этому сообщению. Затем все остальные строки также будут записаны в файл allmsgs-but-informational.log.