Evita o registro de certos arquivos ausentes no log de erros do Apache2

7

Gostaria de evitar o registro de alguns arquivos ausentes (que fornecem um erro 404) no log de erros do Apache2.

Eu quero fazer isso em um site de atualização do Eclipse para o meu plugin. O problema é que o código do Eclipse P2 tenta acessar seus arquivos de metadados como content.xml, content.jar, digest.zip e alguns outros, que não estão disponíveis em meu site. Quando o P2 descobre isso, ele finalmente alcança o site.xml, que eu forneço. Tudo somado, tudo funciona bem ... mas eu tenho toneladas de linhas como:

[Mon Jul 06 21:46:46 2009] [error] [client 195.91.79.90] File does not exist: ...htdocs/stable/content.jar

no meu arquivo error.log, o que não me ajuda muito.

Uma solução que me vem à mente é deixar o Apache fazer o log pelo grep (via pipe-logging), mas estou procurando uma solução melhor.

Eu estava pensando em marcar essas solicitações com Diretiva SetEnvIf e ignorar o log de erros para solicitações marcadas, mas a diretiva ErrorLog não suporta isso.

Alguma outra ideia?

    
por Peter Štibraný 06.07.2009 / 22:10

3 respostas

8

Eu encontrei uma solução que funciona para mim. Eu adicionei essas linhas ao .htaccess:

# Don't log missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(artifacts\.jar|content\.xml|content\.jar)$ - [R=404,L]

Ele usa o mod_rewrite. R = 404 diz para enviar o código de status 404 Not Found quando o cliente acessa qualquer um dos arquivos mencionados.

O RewriteCode está lá para garantir que o arquivo realmente não exista. Se eu colocar um desses arquivos no diretório, ele será exibido normalmente.

Isso funciona muito bem: os arquivos mencionados não estão mais registrados no error.log (que era meu objetivo), mas ainda estão conectados ao log de acesso (com status 404).

    
por 07.07.2009 / 18:36
3

Você pode fazer registros condicionais usando mod_log_config

Isso permitirá que você use variáveis de ambiente.

Exemplo aqui para não registrar solicitações de imagens.

    
por 06.07.2009 / 22:30
1

Não teria sido mais fácil aumentar seu LogLevel acima do erro para avisar ou crit? Ou você tem um motivo para mantê-lo mais baixo?

    
por 10.07.2009 / 20:27