I am currently working on an app that creates a lot of large log files. And so in order to manage these I would like to just restart the app at midnight, compress the log file it left behind, and start a new log file with the current date, so the log folder might look like this:
latest.log
2022-10-22_00:00:00.log.tar.gz
2022-10-21_00:00:00.log.tar.gz
2022-10-20_00:00:00.log.tar.gz
2022-10-19_00:00:00.log.tar.gz
PM2 promises to be able to do this using this module:
https://www.npmjs.com/package/pm2-logrotate But it seems to have a nasty reputation: https://stackoverflow.com/a/71852170/2741831
So I was ready to give up when I found that pm2 has a native function that is confusingly also called logrotate:
https://pm2.keymetrics.io/docs/usage/log-management/#Setting%20up%20a%20native%20logrotate Section native logrotate
Which generates a config file that looks like this:
/home/user/.pm2/pm2.log /home/user/.pm2/logs/*.log {
rotate 12
weekly
missingok
notifempty
compress
delaycompress
create 0640 user user
}
which is not documented anywhere so I have no idea what it is or how it works, although it appears to be able to compress log files, which is nice. It doesn't even say if I have to setup a crontab for it or not.
So heres my questions:
Apparently, all this command does is generate a config file for the Redhat logrotate utility. So I guess just use that