Configure Logging And Log Rotation In Apache

October 26, 2014 1.4k views


I have 4 domains and i wont to have separate access and error for every domain and it should create a new log every day .

What is the smoothest way to do that?

please answer in as much detail as possible

1 Answer

Create a directory to store the logs in and grant Apache access to it:

sudo mkdir /var/log/sites
sudo chown -R www-data:www-data /var/log/sites

Then add the following two lines to each site's virtualhost config (if you haven't created those already, see How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS | DigitalOcean):

ErrorLog /var/log/sites/
CustomLog /var/log/sites/ combined

The easiest way to empty the logs every day is to create a cronjob that does that. Run the following command:

sudo crontab -u www-data -e

and add the following lines at the bottom:

@daily bash -c "truncate -s 0 /var/log/sites/*"
Have another answer? Share your knowledge.