1. 程式人生 > 其它 >修改自增欄位起始值不生效_PM2 修改日誌儲存路徑但不生效問題解決方式

修改自增欄位起始值不生效_PM2 修改日誌儲存路徑但不生效問題解決方式

技術標籤:修改自增欄位起始值不生效

c970bf87492ec5ff1d790d8a8502202c.png

目前開發了一個 Node 服務,使用 PM2 來實現程序管理。

後端服務,日誌功能是必須且必要的。因為不定什麼時候就會出現么蛾子。

包括但不限於:

  1. 呼叫者的呼叫姿勢不對。包括但不限於request.url,request.method, request.body等。
  2. 程式碼本身健壯不夠,未考慮邊界問題
  3. 網路問題

當以上問題發生後,在生產環境已經很難追溯現場。所以,使用日誌的方式儲存當時的情形【包括請求資訊,返回資訊等】,然後再重現事故現場。

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]

這樣,日誌檔案的新路徑就生效了。

遺留問題:

  1. 為什麼必須刪掉服務重啟才能生效呢?
  2. 如果是在生產環境,停服的成本是非常高昂的,包括:stop 之前的請求未處理結束返回,stop 到 start1 這段時間是無法提供服務的。

以上問題,研究清楚之後,再來更新。