Tente enviar todo o ErrorLog para um pipe, por exemplo, um script perl. Este script perl pode direcionar para o syslog e o disco local.
Eu tenho um servidor Apache httpd 2.2. Eu quero registrar todas as mensagens usando syslog, para que as solicitações sejam enviadas para o nosso servidor syslog central. Também quero garantir que todas as mensagens de log sejam enviadas ao disco local, para que um administrador de sistema possa ter acesso fácil aos arquivos de log no sistema local.
É fácil enviar logs de acesso HTTP para o disco local e para o syslog. Um método comum é:
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined
Mas não é fácil fazer isso para logs de erros. A configuração a seguir não funciona, porque os logs de erro usam apenas a última sub-rotina ErrorLog. A primeira estrofe ErrorLog é ignorada.
ErrorLog logs/error_log
ErrorLog syslog:local4.error
Como posso garantir que os logs de erros do Apache sejam gravados no disco local e enviados para o syslog?
É possível fazer isso sem tocar em /etc/syslog.conf
? Eu estou bem se meus usuários quiserem gerenciar seus próprios arquivos de configuração do Apache, mas eu não quero que eles toquem arquivos do sistema como /etc/syslog.conf
Você pode usar:
ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"
para fazer o que você procura.