It’s pretty easy to set this up on Linux as most distros come with rotatelog functionality.
All I had to do was to create a file /etc/logrotate.d/apache2 with this content:
If plain English:
First log is rotated on a daily basis regardless if the log is there or empty. Last 5 logs are kept in “olddir” directory. And, you don’t have to restart Apache when you use copytruncate directive.
Second group defines a rotation for all files ending with “_log”. They rotate three files when their size is over 100M.
More options can be found in logrotate man page