Я добавляю пользовательское ведение журнала на local0 в системный журнал.
Записать эти сообщения в конкретный журнал очень просто, в моем syslog.conf есть
local0.* -/var/log/my.log
Но как я могу исключить local0 из всех остальных журналов? В моей текущей настройке сообщения local0 также отображаются в / var / log / syslog, поскольку он указан как
*.*;auth,authpriv.none -/var/log/syslog
Нужно ли мне просматривать все остальные журналы по умолчанию и добавлять local0.none, или я могу использовать какое-то глобальное исключение?
В справочной странице syslogd указано, что восклицательный знак используется в качестве обозначения для исключения указанных приоритетов и что «Вы можете интуитивно использовать его как спецификатор исключения». Приведенный пример:
mail.*;mail.!=info /usr/adm/mail
который будет регистрировать все почтовые сообщения, кроме сообщений с приоритетом «информация». Итак, для вашей проблемы я бы использовал
*.*;local0.!debug;auth,authpriv.none /var/log/syslog
или, что более читабельно,
*.*;local0.none;auth,authpriv.none /var/log/syslog
Однако вы должны знать, что я не смог это проверить.
В системном журнале я боюсь, что ваше предположение верно, вы должны сделать это, добавив local0.none
в каждую строку системного журнала, в которой вам не нужен local0.
Если вы ищете другие варианты rsyslog в наши дни (все классные дети любят это), и на самом деле позволит вам делать то, о чем вы просите (проверьте Вот).
Также syslog-ng позволяет делать то, о чем вы просите, и иметь довольно классную фильтрацию даже по строкам (отметьте Вот), Я использую его для расширенного системного журнала на моем сервере сборщика журналов.