A few words of thanks would be greatly appreciated.

Filtering Apache logs / conditional Logging


Log-ins used by Apache Web server is usually very wordy, they contain all type of information (image files, style sheets, javascript, son RSS, etc.)

This can be very troublesome when trying to access certain web pages. The only way to get through is to make use of conditional logging (it is not the only way to control the contents of the logs)
To do this, simply define an environment variable ,according to certain criteria, then request that the server does not write the file type within log when this variable exists:

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

In the example above, requests concerns the following files type .ico, .pdf, .flx, .jpg, .jpeg, .png, .gif, .js, .css, .gz, .swf, ,.txt (they will not be written in the logs), the same goes for for all requests for the /rss/ directory



First of all, the mod_setenvif module must be loaded.
The command apache2-M (or httpd-M, depending on the Apache server installed or distribution used) displays the modules loaded.

Under Debian:

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

A few words of thanks would be greatly appreciated.

Ask a question
CCM is a leading international tech website. Our content is written in collaboration with IT experts, under the direction of Jean-François Pillou, founder of CCM.net. CCM reaches more than 50 million unique visitors per month and is available in 11 languages.
This document, titled « Filtering Apache logs / conditional Logging », is available under the Creative Commons license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM (ccm.net).