Log Rotation
Linux has exceptional support for log rotation using logrotate
.
Example: For log rotation on a daily basis, create a file called /etc/logrotate.d/my_app
/var/www/rails/my_app/log/*.log {
daily
missingok
copytruncate
rotate 14
compress
delaycompress
notifempty
}
Example: For long term log rotation based on log file size, or if there is a very high volume of logging:
/var/www/rails/my_app/log/*.log {
size 2G
missingok
copytruncate
rotate 7
compress
nodelaycompress
notifempty
dateformat .%Y%m%d
}
Other log rotation tools are also available, the only requirement from a Semantic Logger perspective is that the files must be rotated using copy-truncate to ensure that no data is lost during log rotation.