4.8. Logging for Each Virtual Host
Problem
You want each virtual host to have its own logfiles.
Solution
Specify Errorlog and CustomLog within each virtual host declaration:
<VirtualHost *:80>
ServerName waldo.example.com
DocumentRoot /home/waldo/www/htdocs
ErrorLog /home/waldo/www/logs/error_log
CustomLog /home/waldo/www/logs/access_log combined
</VirtualHost>Discussion
The various logging directives can be placed either in the main body of your configuration file or within a <VirtualHost> section. When they are placed within a virtual host, log entries for that virtual host go in the specified logfiles, rather than into the logfile(s) defined in the main server configuration.
Warning
Each logfile counts against the total number of files and network connections your server is allowed to have. If you have 100 virtual hosts, each with its own error and activity log, that’s 200 open channels—and if the server’s quota is 256, you can only handle 56 concurrent requests at any one time.
Those numbers are just examples; actual values for maximum open file quotas vary by platform, but are generally much larger. Consult your platform’s documentation to find out your actual limit.
For this reason, we recommend that you have all your virtual hosts log to the same files, and split them apart later for analysis or examination.
In the recipe given here, the logfiles are placed within the home directory of a particular user, rather than in the main log directory. This gives you easier access to those files, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access