Tenho cerca de 10 VirtualHosts e gosto de manter os error_logs separados. Recentemente, também preciso combinar todos os error_logs para algumas verificações do mod_security.
Se eu definir 2 ErrorLogs para um VirtualDomain de teste, percebo que nenhum erro está sendo registrado. Muito estranho.
É possível que um CustomLog desempenhe o papel de um ErrorLog?
Ou estou definindo meus 2 ErrorLogs incorretamente?
<VirtualHost 1.2.3.4:80>
ServerName mydomain.net
ServerAlias www.mydomain.net mydomain.net
DocumentRoot /var/www/html/mydomain
ServerAdmin [email protected]
UseCanonicalName Off
ErrorLog logs/mydomain.net-error_log
ErrorLog logs/unified_modsecurity-error_log
CustomLog logs/mydomain.net-access_log combined
UserDir disabled
UserDir enabled mydomainuser
</VirtualHost>
Responder1
Não, não é possível ter duas diretivas ErrorLog por VirtualHost. No entanto, você pode usar a capacidade do Apache de canalizar para um comando para registrar em dois (ou mais) arquivos usando o comando 'tee' do UNIX:
Log de erros "|/usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"
Responder2
De acordo comDocumentação de registros do Apache 2.4:
Por padrão, o processo de log canalizado é gerado sem invocar um shell. Use "|$" em vez de "|" para gerar usando um shell (geralmente com /bin/sh -c):
Este era o comportamento padrão do Apache 2.2.
Exemplo:
# Write to files error-1.log and error-2.log, and echo to stdout
CustomLog "|$/usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"
Outro problema que encontrei:
- Você não deve deixar espaço entre as aspas duplas e a barra.
"|$ ...
é válido." |$ ...
não é.