É possível ter 2 logs de erros por VirtualHost no Apache?

1

Eu tenho cerca de 10 VirtualHosts e gosto de manter os error_logs separados. Recentemente, eu preciso também ter os error_logs todos combinados para alguma varredura mod_security.

Se eu definir 2 ErrorLogs para um teste VirtualDomain, noto 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>
    
por Pat 05.09.2013 / 23:53

2 respostas

2

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:

ErrorLog "|/usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"

    
por 06.09.2013 / 00:24
1

De acordo com a documentação do Apache 2.4 Logs :

By default the piped log process is spawned without invoking a shell. Use "|$" instead of "|" to spawn using a shell (usually with /bin/sh -c):

This was the default behaviour for 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 ter um espaço entre o Double-Quote e o Bar.
    • "|$ ... é válido.
    • " |$ ... não é.
por 04.05.2018 / 22:02