使用pm2-logrotate 解決pm2日誌體積過大,進行分割
什麼是pm2-logrotate?
pm2-logrotate 是一個pm2的插件,可以對pm2日誌進行管理,所以它的運行需要依靠pm2
安裝:
注:該命令是 pm2 install
不是 npm install
pm2 install pm2-logrotate
查看配置指令
pm2 conf pm2-logrotate
配置項
// 每個文件最大存儲 注:10G 10M 10K
$ pm2 set pm2-logrotate:max_size 50k
// retain:保留的日誌文件個數,比如設置爲30,那麼在日誌文件達到30個後就會將最早的日誌文件刪除
$ pm2 set pm2-logrotate:retain 30
// 是否通過gzip壓縮日誌
$ pm2 set pm2-logrotate:compress false
// dateFormat 日誌文件名的日期格式。如設置的日誌名爲out.log,就會生成out-YYYY-MM-DD_HH-mm-ss.log 的日誌文件
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
// 檢查日誌大小的時間間隔,最小爲1
$ pm2 set pm2-logrotate:workerInterval 30
// 設置強制分割,默認值是0 0 * * *,意思是每天晚上0點分割
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
// rotateModule 是否把pm2本身的日誌也進行分割
$ pm2 set pm2-logrotate:rotateModule true
設置
設置的話就是重寫了配置項
1. 比如設置每個文件的最大存儲爲1M
pm2 set pm2-logrotate:max_size 1M
2. 比如設置保留文件個數爲 10 個
pm2 set pm2-logrotate:retain 10
3. 如果有設置分割時間的話,是用的雙引號
pm2 set pm2-logrotate:rotateInterval "30 * * * * *"
停止pm2-logrotate
以前舊版本的pm2-logrotate想要停止,就只能卸載了
現在新版本的可以使用 pm2 stop 進程id
使用pm2 list
查看到pm2-logrotate 進程id爲0 ,執行pm2 stop 0
即可停止服務