Спасибо статье http://habrahabr.ru/post/259169/
Для того что б например cron не засирал syslog своим выхлопом делаем следующее:
— создаем файл лога,например /var/log/cron.log
— создаем файл конфига /etc/rsyslog.d/cron.conf с содержимым:
:msg, contains, «/USR/SBIN/CRON» -/var/log/cron.log
& ~
где: & ~
— говорит о том, что дальнейшую обработку записи производить не следует, поэтому она не попадет в другие файлы логов.
"/USR/SBIN/CRON"
— тот самый log-prefix — критерий по которому rsyslog принимает решение перенаправить лог в нужный файл./var/log/cron.log
— сам файл лога.
-перезагрузить демон rsyslogd
Так можно делать с любым демоном,токо задавай конфиг и строку по которой будут перехватываться сообщения.
UPD.03.03.2017
Теперь формат конфига rsyslog немного изменился и потому предыдущая настройка может не работать.Вот новый вариант рабочей настройки например для сбора от программы pop3d:
if ( $programname startswith «pop3d» ) then {
action(type=»omfile» file=»/var/log/courier-pop3d.log»)
stop
}