Eu tenho muitos hosts virtuais configurados em um servidor web, cada um com seu próprio log de erros e acesso. As linhas relevantes de httpd.conf
são algo como isto:
ErrorLog /var/log/httpd-error.log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /var/log/httpd-access.log combined
NameVirtualHost *:80
<VirtualHost *:80>
ServerName myhost.com
ServerAlias www.myhost.com
DocumentRoot /var/www/myhost.com/htdocs
ErrorLog /var/www/myhost.com/log/error.log
CustomLog /var/www/myhost.com/log/access.log combined
</VirtualHost>
# ... many more VirtualHosts
Atualmente, estou recebendo alguns erros aleatórios em /var/log/httpd-error.log, mas não estou recebendo nada em /var/log/httpd-access.log. É possível ter TODOS os acessos e erros duplicados em um arquivo de log compartilhado? É possível fazer isso sem adicionar novas entradas a cada VirtualHost?
fonte
Você tem 2 possibilidades usando a diretiva ErrorLog http://httpd.apache.org/docs/2.2/mod/core.html#errorlog
1) Use syslog e lide com a duplicação em [r] syslog.conf
2) Use pipe, envie a entrada de log para um aplicativo / script e lide com a duplicação nesse aplicativo / script
fonte
É estritamente necessário assistir a todos os logs de acesso? Se os erros forem realmente causados por uma solicitação de um vhost, deve haver algo registrado no log de erros do vhost. Nesse caso, ls -t /var/www/*/log/error.log para determinar qual vhost é o culpado e, em seguida, observando apenas esse arquivo de log de acesso parece ser um bom primeiro passo para eliminar muitas leituras desnecessárias de logs .
fonte