logrotate nginx log by date
Logrotate by default rotate logs with numbers like following
![logrotate nginx access log](https://serverok.in/wp-content/uploads/2020/07/logrotate-nginx-access-log-1.png)
You can configure how many logs to keep and how to rotate lots by editing logrotate configuration file for nginx
root@ok:~# cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
root@ok:~#
rotate 14 – this tells logrotate to keep logs for 14 days.
If you need to rotate logs by date, add
dateext
dateformat -%Y-%m-%d
Example
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
dateext
dateformat -%Y-%m-%d
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
See Logrotate