no save
Assistance
Achat
News

FAQ | Apache

Filtrer les logs Apache / Logging conditionnel
Publié par Jeff, dernière mise à jour lun. 16 nov. 2009 à 13:05:10 par marlalapocket
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 Etchroot@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

Version Web
Réalisé par RedShift
no save