Despacho do código HTTP de log do Apache

3

Eu gostaria de ser avisado por e-mail quando alguns códigos HTTP são acionados, então eu queria enviar o log entre arquivos diferentes dependendo do código HTTP da solicitação. Assim eu posso colocar um observador nesses arquivos e então ser avisado pelo correio sobre isso.

Além disso, os arquivos de logs devem ser mais leves se o código HTTP estiver em arquivos separados, portanto, isso aumentará a velocidade do analisador de log.

Eu tentei encontrar informações sobre a documentação do Apache sem sucesso, parece que eu tenho que usar SetEnvIf com algo assim:

SetEnvIf ??http_code?? 403 403log
CustomLog ${APACHE_LOG_DIR}/403.log vhost_combined env=403log

SetEnvIf ??http_code?? 404 404log
CustomLog ${APACHE_LOG_DIR}/404.log vhost_combined env=404log

SetEnvIf ??http_code?? 406 406log
CustomLog ${APACHE_LOG_DIR}/406.log vhost_combined env=406log

etc ...

Infelizmente, parece que a variável "http_code" não existe no Apache

P: Existe uma maneira de despachar log de acesso dependendo do código HTTP no Apache?

Obrigado pela leitura.

    
por Froggiz 18.12.2015 / 11:26

1 resposta

2

SetEnvIf analisa a solicitação . A partir da documentação :

The SetEnvIf directive defines environment variables based on attributes of the request.

O Código de Resposta HTTP viria da resposta e, portanto, não está disponível.

Você está tornando as coisas mais difíceis para o Apache para facilitar as coisas para seu analisador de logs. O Apache teria que manter várias alças de arquivos extras também, consumindo recursos extras.

Se o desempenho for um problema, você deve coletar e processar seus registros em um host diferente. Lá você pode fazer todos os tipos de agregação, análise, notificações e qualquer relatório especial que desejar, sem qualquer efeito em seus servidores da Web.

    
por 18.12.2015 / 22:28