pm2日志管理pm2-logrotate介紹


先來看兩個問題

問:pm2-logrotate是什么?

答:pm2-logrotate可以理解為是一個pm2的插件,它擴充了pm2本身沒有功能:日志管理,所以它的運行需要依靠pm2,想用它必須先安裝pm2才可以。

問:為什么有pm2-logrotate

答:因為pm2本身沒有日志分割功能,日志只能存在一個文件中,時間久了日志文件非常大,查看起來很麻煩,並且一些日志過一段時間后可能就沒用了,依然留着對空間也是浪費,有了該插件,可以將日志文件根據我們的設定進行分割,比如按天進行分割,把每天的日志文件分別存儲,這樣查看起來是不是比較方便?並且還可以設置日志文件的最大總數,比如我們設置日志文件最多100個,那么當日志文件超過100個后會自動將最早的日志文件刪除掉,我們也不用再花時間去整理日志文件了,是不是很省心?

安裝

NPM官網地址:https://www.npmjs.com/package/pm2-logrotate

安裝:pm2 install pm2-logrotate(前提是已安裝過pm2

安裝特定版本:pm2 install pm2-logrotate@2.2.0

參數介紹

 

安裝完畢使用方法如上圖:pm2 set pm2-logrotate:max_size 1K

格式是:pm2 set pm2-logrotate:{paramName} {value}

命令設置具體的參數,支持的參數有:

l Compress:是否通過gzip壓縮日志

l max_size:單個日志文件的大小,比如上圖中設置為1K(這個其實太小了,實際文件大小並不會嚴格分為1K

l retain:保留的日志文件個數,比如設置為10,那么在日志文件達到10個后會將最早的日志文件刪除掉

l dateFormat:日志文件名中的日期格式,默認是YYYY-MM-DD_HH-mm-ss,注意是設置的日志名+這個格式,如設置的日志名為abc.log,那就會生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件

l rotateModule:把pm2本身的日志也進行分割

l workerInterval:設置啟動幾個工作進程監控日志尺寸,最小為1

rotateInterval:設置強制分割,默認值是0 0 * * *,意思是每天晚上0點分割,這個足夠了個人覺得

設置完畢后可通過pm2 conf pm2-logrotate來查看詳細的配置。

存在問題

我在使用過程中發現一個問題:只有當日志文件大小超過上限時都會把日志追加到最新的文件中,比如設置了日志文件名為app-out.log,日志文件大小為1M,那么在app-out.log文件沒有超過1M時,即使第二天新建了日志文件app-out_yyyy-mm-dd_hh-mm-ss.log,但是依然會把日志追加到app-out.log中而非新建的日志文件中,更坑的是,在超過設定的大小后,它是把超出部分寫到新的日志文件中,然后繼續在app-out.log中追加- -,在官方文檔中也沒有發現對這個問題的說明。

不過,值得高興的是,萬能的網友解決了這個問題!Github地址在這里,請開心享用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM