A melhor ferramenta que eu posso pensar para esta tarefa é syslog-ng
( há tanto open source comercial quanto aberto edições disponíveis ).
Existem algumas maneiras de lidar com isso no syslog-ng, mas o que eu sugiro é filtrar as características da mensagem que você deseja e, em seguida, enviar a mensagem para um destino que chame um program()
para fazer o que você precisa.
O documentação do syslog-ng tem mais detalhes sobre isso, assim como os outros recursos que você obtém com o syslog-ng.