Filtering Apache logs / conditional Logging

December 2016


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

Related :

This document entitled « Filtering Apache logs / conditional Logging » from CCM ( is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the license, as this note appears clearly.