PM2 module to automatically rotate logs of processes managed by PM2.
pm2 install pm2-logrotate
NOTE: the command is
pm2 install NOT
10M): When a file size becomes higher than this value it will rotate it (its possible that the worker check the file after it actually pass the limit) . You can specify the unit at then end:
30file logs): This number is the number of rotated logs that are keep at any one time, it means that if you have retain = 7 you will have at most 7 rotated logs and your current one.
false): Enable compression via gzip for all rotated logs
YYYY-MM-DD_HH-mm-ss) : Format of the data used the name the file of log
true) : Rotate the log of pm2's module like other apps
30in secs) : You can control at which interval the worker is checking the log's size (minimum is
0 0 * * *everyday at midnight): This cron is used to a force rotate when executed. We are using node-schedule to schedule cron, so all valid cron for node-schedule is valid cron for this option. Cron style :
TZ(Defaults to system time): This is the standard tz database timezone used to offset the log file saved. For instance, a value of
Etc/GMT+1, with an hourly log, will save a file at hour
14GMT with hour
13(GMT+1) in the log name.
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31) │ │ └─────────────── hour (0 - 23) │ └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, OPTIONAL)
How to set these values ?
After having installed the module you have to type :
pm2 set pm2-logrotate:<param> <value>
pm2 set pm2-logrotate:max_size 1K(1KB)
pm2 set pm2-logrotate:compress true(compress logs when rotated)
pm2 set pm2-logrotate:rotateInterval '*/1 * * * *'(force rotate every minute)