在Debian系統中處理Node.js日志異??蓮腻e誤捕獲、日志記錄、排查工具及監控等方面入手,具體方法如下:
錯誤捕獲與處理
try-catch
語句捕獲同步代碼中的異常,例如:try {
// 可能拋出錯誤的代碼
} catch (error) {
console.error('同步錯誤:', error.message);
}
async/await
或.catch()
處理Promise異常,全局捕獲未處理的拒絕:process.on('unhandledRejection', (reason, promise) => {
console.error('未處理的Promise拒絕:', reason);
});
process.on('uncaughtException')
捕獲未捕獲的同步異常,記錄日志并清理資源,必要時退出進程:process.on('uncaughtException', (error) => {
console.error('未捕獲的異常:', error.message);
process.exit(1);
});
日志記錄與管理
console.log
/console.error
輸出日志,適合開發階段快速調試。error
、warn
、info
)、格式化輸出及文件存儲,例如:const winston = require('winston');
const logger = winston.createLogger({
level: 'error',
transports: [
new winston.transports.File({ filename: 'error.log' })
]
});
logger.error('錯誤日志記錄');
logrotate
)定期清理舊日志,避免文件過大。排查與監控工具
tail -f
實時查看日志文件(如/var/log/syslog
或應用自定義日志),用ps aux
檢查進程狀態,netstat
排查端口沖突。node --inspect-brk app.js
啟動,配合Chrome DevTools或VS Code調試。環境與配置優化
chmod
/chown
),避免因權限問題導致日志寫入失敗。通過以上方法,可有效處理Debian中Node.js的日志異常,提升應用穩定性。