本篇文章說的是,如何使用pm2管理node項目的日志輸出(切割和備份),文章步驟是基於已經安裝了pm2的前提下,沒有的,請自行百度。
第一步:需要登錄公司服務器,查看一下目前服務器保存的所有日志(用於跟后面的效果對比),執行命令 pm2 logs 可以查看。
第二步:安裝pm2日志切割管理工具(工具是pm2-logrotate的擴展),執行命令:pm2 install pm2-logrotate-ext
第三步:安裝好后會自動重啟生效,可以執行命令設置如下參數,設置好參數后也會自動重啟
pm2 set pm2-logrotate-ext:retain 7 //保存7個文件
pm2 set pm2-logrotate-ext:compress false //是否啟動壓縮
pm2 set pm2-logrotate-ext:dateFormat YYYY-MM-DD_HH-mm-ss //日志名添加時間
pm2 set pm2-logrotate-ext:rotateInterval '0 0 * * * ' //每天凌晨0點啟動備份
pm2 set pm2-logrotate-ext:rotateModule true //把pm2本身的日志也進行分割
pm2 set pm2-logrotate-ext:max_size 100M //每個備份文件大小為100M
pm2 set pm2-logrotate-ext:workerInterval 5 //設置啟動幾個工作進程監控日志尺寸,默認30,這里設置為5
pm2 set pm2-logrotate-ext:retain 30 //保存30個備份日志文件,超過30個,會把之前的刪掉,防止日志總體體積越來越大
第四步驟,執行好之后可以查看當前的設置:pm2 conf pm2-logrotate-ext
第五步驟:之前的日志如果不需要了,可以使用命令:pm2 flush,可以不重啟項目刪除日志。可以自行修改參數檢驗備份結果。
我只設置了上面參數中標紅的項,其它項保留了默認配置,
最終效果是:如果當日某個項目的日志文件超過了設定的大小,這里為100M,那么會自動切割備份當日文件,如果未超過,則會在每日0點的時候啟動備份,當然備份的前提是有新日志輸出,沒有新日志輸出不會備份。一共會為每個項目保存30個備份日志。
這就是我的node項目日志管理,如果有其它的好的建議,可以留言分享一下。