修改自增欄位起始值不生效_PM2 修改日誌儲存路徑但不生效問題解決方式
阿新 • • 發佈:2021-01-24
技術標籤:修改自增欄位起始值不生效
目前開發了一個 Node 服務,使用 PM2 來實現程序管理。
後端服務,日誌功能是必須且必要的。因為不定什麼時候就會出現么蛾子。
包括但不限於:
- 呼叫者的呼叫姿勢不對。包括但不限於request.url,request.method, request.body等。
- 程式碼本身健壯不夠,未考慮邊界問題
- 網路問題
當以上問題發生後,在生產環境已經很難追溯現場。所以,使用日誌的方式儲存當時的情形【包括請求資訊,返回資訊等】,然後再重現事故現場。
PM2 自帶日誌功能。在配置檔案中即可配置日誌檔案路徑。
module.exports = { app: [{ ..., error_file: 'logs/err.log', out_file: 'logs/out.log', log_file: 'logs/logs.log', }] }
以上配置,日誌檔案預設儲存在當前目錄的 /logs 檔案目錄下。
如果以前設定過日誌路徑,那麼日誌檔案是預設儲存到 .pm2/logs 資料夾下面。這樣的話,服務和日誌就分離了,操作起來很不方便。
所有我這裡手動設定了日誌檔案的路徑。
pm2 restart ecosystem.config.js
pm2 show [service_id]
結果發現,日誌檔案還是儲存在 .pm2/logs 資料夾下。
cat ecosystem.config.js
檔案內容是正確的。
這時候,問題就來了,為什麼我修改了配置檔案,但是配置卻不生效呢???
原來是服務重啟的方式不對,應該這樣來操作
pm2 stop [service_id] pm2 delete [service_id] pm2 start ecosystem.config.js pm2 show [service_id]
這樣,日誌檔案的新路徑就生效了。
遺留問題:
- 為什麼必須刪掉服務重啟才能生效呢?
- 如果是在生產環境,停服的成本是非常高昂的,包括:stop 之前的請求未處理結束返回,stop 到 start1 這段時間是無法提供服務的。
以上問題,研究清楚之後,再來更新。