Existe um módulo chamado mod_log_config que tem diretivas chamadas CustomLog e LogFormat . Basicamente, definimos um formato de saída usando o LogFormat e o redirecionamos para o arquivo mencionado no CustomLog.
Eu tenho algum conteúdo que está disponível apenas para pessoas que passam por uma pesquisa do GeoIP e correspondem a determinados países. Isso é feito por mod_rewrite e tudo funciona bem.
O que eu gostaria de fazer é registrar tentativas com falha, para ajudar a depurar as pessoas que devem conseguir esse conteúdo, mas não conseguem. Para fazer isso no momento, preciso de RewriteLogLevel em 4, o que significa que tudo no host virtual é registrado, em vez de apenas as coisas que estou restringindo.
Este é o exemplo do mod_geoip readme:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule \.(gif|jpg|png|css)$ - [L] # don't redirect images and stylesheets
RewriteRule ^(.*)$ http://www.canada.com [L] # redirect everything else
Eu gostaria de adicionar algo como
WriteThisToLog "Denied access to $1 from IP $2 due to calculated country $3"
As variáveis estão todas lá - existe uma diretiva que eu possa usar para escrever no log de erros do Apache?
Editar: Eu teria colocado isso no comentário para a resposta correta, mas a formatação era importante. Eu terminei com isso:
RewriteRule ^(.*)$ http://www.canada.com [L,E=GEOIP_FAIL:1] # redirect everything else
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" GEOIP_COUNTRY_CODE=%{GEOIP_COUNTRY_CODE}e" geoip_fail_format
CustomLog /var/log/httpd/geoip_fail_log geoip_fail_format env=GEOIP_FAIL
Existe um módulo chamado mod_log_config que tem diretivas chamadas CustomLog e LogFormat . Basicamente, definimos um formato de saída usando o LogFormat e o redirecionamos para o arquivo mencionado no CustomLog.