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 пуст. Но когда я получаю "отладочные" журналы, он пишет в оба файла.

Помогите мне исключить отладочные логи из 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

Это будет означать, что все сообщения с приоритетной информацией и выше будут идти в /var/log/info.log.

Для журнала отладки решение также находится на странице руководства:

Вы можете поставить перед каждым приоритетом знак равенства ('='), чтобы указать только этот единственный приоритет, а не любой из вышеперечисленных.

Так что эта строка должна читать

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

получать только отладочные сообщения.

Другие вопросы по тегам