У меня есть приложение, которое регистрирует в системном журнале local1. Я хотел бы настроить syslog для отправки всех сообщений local1 в файл журнала отдельно от / var / log / messages - это оказалось несложно. Но сообщения также переходим в / var / log / messages. есть ли способ указать системному журналу отправлять * .info в / var / log / messages, но исключить local1.info? (Что-то вроде * ^ loacl1.info?)
syslog.conf:
#kern.* /dev/console
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
local0.notice;local0.debug;mail.*;mail.none;mail.info;local0.info /var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
#My Custom App Logging
local1.* /var/log/application.log
Попробуйте заменить
*.info;mail.none;authpriv.none;cron.none /var/log/messages
по
*.info;mail.none;authpriv.none;cron.none;local1.!=info /var/log/messages
Это будет регистрировать сообщение, которое соответствует: любой объект с информацией уровня И средство, не почта, И средство не authpriv И средство local1 execpt, когда уровень - информация.
Вы должны использовать либо
#My Custom App Logging
local1.* /var/log/application.log
& ~
для системного журнала или
#My Custom App Logging
local1.* /var/log/application.log
& stop
для rsyslog 7+, чтобы предотвратить дальнейшую обработку сообщения журнала. Убедитесь, что это приходит перед правила по умолчанию, которые регистрируют *.*
в / var / log / syslog.