
Les logs du serveur web Apache sont généralement très verbeux, c'est-à-dire qu'ils contiennent tous les hits (fichiers images, feuilles de style, javascript, fils RSS, etc.).
Si vous ne souhaitez logger que les pages web il est possible de mettre en place une journalisation conditionnelle, permettant de ne pas logger certaines pages web. Pour ce faire, il suffit de définir une variable d'environnement selon certains critères, puis de demander au serveur de ne pas écrire dans les logs lorsque cette variable existe :
SetEnvIf Request_URI "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|gz|swf|txt)$" dontlog
SetEnvIf Request_URI "^\/rss\/" dontlog
CustomLog /var/log/apache/access.log combined env=!dontlog
Dans l'exemple ci-dessus, les requêtes correspondant à des fichiers .ico, .pdf, .flx, .jpg, .jpeg, .png, .gif, .js, .css, .gz, .swf, .txt ne sont pas écrites dans les logs. Idem pour toutes les requêtes correspondant au répertoire /rss/
Note :
Pour pouvoir faire cela, le module mod_setenvif doit être chargé.
La commande apache2 -M (ou httpd -M, à vérifier en fonction de votre serveur apache installé ou distribution) permet de voir les modules chargés.
Voici sous Debian Etch
root@debian:~# apache2 -M
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
Lire la suite
Apache - Rendre le listing des fichiers possible »
Publié par
Jeff -
Dernière mise à jour le 16 novembre 2009 à 13:05 par marlalapocket