溫馨提示×

Ubuntu Node.js如何進行錯誤日志分析

小樊
40
2025-08-13 20:06:36
欄目: 編程語言

一、日志定位與查看

  1. 常見日志路徑

    • 應用程序日志:通常在項目目錄下的 logs 文件夾或配置文件指定的路徑(如 /var/log/myapp/)。
    • 系統日志:通過 journalctl 查看(如 journalctl -u your-node-service)。
    • 實時日志:用 tail -f app.logpm2 logs(若用 PM2 管理進程)。
  2. 命令行工具輔助

    • grep 'Error' app.log:過濾錯誤關鍵字。
    • less app.log:分頁查看日志。

二、錯誤類型與分析

錯誤類型 典型示例 解決方法
語法錯誤(SyntaxError) Unexpected token } 檢查代碼語法,修復缺失括號、引號等問題。
引用錯誤(ReferenceError) variable is not defined 確保變量已定義,檢查拼寫錯誤。
類型錯誤(TypeError) Cannot read property 'xxx' of undefined 檢查對象是否初始化,使用可選鏈(?.)避免未定義訪問。
未處理 Promise 拒絕 UnhandledPromiseRejectionWarning 為 Promise 添加 .catch(),或用 process.on('unhandledRejection') 全局捕獲。
內存不足錯誤 JavaScript heap out of memory 優化代碼減少內存占用,或通過 --max-old-space-size 調整內存限制。
端口占用錯誤 Error: listen EADDRINUSE :::3000 lsof -i :3000 找到占用進程并終止,或修改應用端口。

三、工具與最佳實踐

  1. 日志管理工具

    • PM2:支持日志輪轉、實時查看及進程管理(pm2 install pm2-logrotate)。
    • Winston/Log4js:自定義日志級別、輸出格式及存儲目標(如文件、數據庫)。
  2. 系統級工具

    • logrotate:自動管理日志文件輪轉,避免占用過多磁盤空間。
    • dmesg:查看內核日志,排查硬件或系統級問題。
  3. 調試技巧

    • node inspect app.js 啟動調試模式,配合 Chrome DevTools 逐步排查代碼。
    • 在代碼中添加 console.error 或使用日志庫記錄關鍵變量值,輔助定位問題。

四、預防措施

  • 全局錯誤捕獲:通過 process.on('uncaughtException') 捕獲未處理的同步異常。
  • 日志分級:區分 error、warn、info 級別,便于快速篩選關鍵信息。
  • 定期清理日志:設置日志保留策略,避免日志文件過大影響系統性能。

參考來源:

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女