Nodejs線上日誌部署

2021-09-26 20:22:47 字數 1043 閱讀 1528

nodejs 被越來越多的使用到線上系統中,但線上系統沒有日誌怎麼行呢。

我的線上系統使用forever來啟動服務,最開始就直接使用了forever來記錄

forever start -a -l ./logs/forever.log
-a 表示追加日誌檔案

-l 指定日誌檔案

-s 忽略console.log輸出的日誌記錄(使用log4j時要用這個)

最開始還挺好的,所有日誌都能記錄下來,但是既然是線上環境,日誌比較多,跑著跑著就出問題了。

forever.log檔案變得越來越大,在我的系統裡直接佔了3gb的記憶體,而且全在記憶體裡面,然後伺服器就報警了。

然後嘗試對forever.log檔案進行切割,結果這sb玩意更本沒法切割,具體問題:

1.對forever.log 重新命名 forever.log.bak 然後新建forever.log,結果日誌仍然往forever.log.bak裡寫,記憶體一點也沒減少

2.直接刪除forever.log ,forever不會新建forever.log,占用的記憶體也一直不釋放

似乎是forever一直使用著檔案控制代碼根本不釋放就往裡面寫,根本沒法做日誌切割。

log4j是nodejs的乙個log日誌包,具體使用方法就不說了,只說怎麼配置和分割日誌

1 ,

4 ,

11 ,

18

24 ],

25 "replaceconsole" : true,

26 "levels":

30 }

console 往控制台輸出

file 檔案日誌 maxlogsize 表示當檔案超過這個值時切換檔案 backup:n 會迴圈使用 error[1,n].log 的檔名

datefile 使用這個就會按天切割日誌,按天生成檔名 access.log-2014-12-14

換了log4j之後會自動切割日誌,按天進行儲存,記憶體就一直沒暴增了;記憶體不滿就沒報警,沒了報警整個世界都清淨了。

nodejs 線上後台管理

npm install pm2 g 命令列安裝 pm2 也可以把 max 引數傳遞給 start 正確的程序數目依賴於cpu的核心數目 pm2 list 顯示所有程序狀態 pm2 monit 監視所有程序 pm2 logs 顯示所有程序日誌 pm2 stop all 停止所有程序 pm2 resta...

nginx uwsgi Django部署線上環境

python點這裡 nginx點這裡 pip3 install uwsgi 不建立軟連線可能會出現找不到命令 ln s usr local python3 bin uwsgi usr bin uwsgi3 1 首先客戶端請求服務資源,2 nginx作為直接對外的服務介面,接收到客戶端傳送過來的htt...

線上環境部署問題

1 缺少openssl md5.h檔案 a find name md5.h 找到系統是否存在md5.h b 如果存在,直接拷貝檔案到相應目錄下 usr local include usr include 或者編譯的 i選項 c 如果不存在,openssl version 檢視 openssl 的版本...