DEV Community

Jasim Alam
Jasim Alam

Posted on

Auto Rotation of PM2 log

PM2 by default stdout to log directory, default ($HOME/.pm2/logs). Over time this can be huge unless rotated.

Below process uses npm module to handle the rotation.

  1. Install the pm2-logrotate module
$ pm2 install pm2-logrotate
[PM2][Module] Installing NPM pm2-logrotate module
[PM2][Module] Calling [NPM] to install pm2-logrotate …
[PM2][Module] Module downloaded
[PM2][WARN] Applications pm2-logrotate not running, starting…
[PM2] App [pm2-logrotate] launched (1 instances)
Enter fullscreen mode Exit fullscreen mode
  1. Set max size of the log
$ pm2 set pm2-logrotate:max_size 50M
[PM2] Module pm2-logrotate restarted
[PM2] Setting changed
Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 50M
$ pm2 set pm2-logrotate:retain 20
$ pm2 set pm2-logrotate:compress true
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Enter fullscreen mode Exit fullscreen mode
  1. set log rotation interval in cron format.
$ pm2 set pm2-logrotate:rotateInterval '0 0 * * *'
[PM2] Module pm2-logrotate restarted
[PM2] Setting changed
Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 50M
$ pm2 set pm2-logrotate:retain 20
$ pm2 set pm2-logrotate:compress true
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Enter fullscreen mode Exit fullscreen mode
  1. change the retention time
$ pm2 set pm2-logrotate:retain 10
[PM2] Module pm2-logrotate restarted
[PM2] Setting changed
Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 50M
$ pm2 set pm2-logrotate:retain 10
$ pm2 set pm2-logrotate:compress true
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Enter fullscreen mode Exit fullscreen mode

Note: Originally published on Medium

Top comments (0)