Node.js日志在Debian中的错误追踪指南
在Debian系统中追踪Node.js错误,需结合系统日志、应用日志、调试工具及日志管理方案,以下是具体步骤:
Debian的系统日志会捕获Node.js进程的底层错误(如启动失败、权限问题),主要通过以下命令查看:
tail -f /var/log/syslog(或journalctl,若使用systemd),通过grep node过滤Node.js相关日志,快速定位错误时间点和类型。dmesg | grep node,用于诊断与硬件、内核模块相关的错误(如端口冲突、内存不足)。Node.js应用的日志需通过内置模块或第三方库配置,确保错误信息被记录:
console.error()输出错误到控制台,适合开发调试,但生产环境需更结构化的方案。error级别日志文件,示例代码:const winston = require('winston');
const logger = winston.createLogger({
level: 'error',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.File({ filename: '/var/log/nodejs/error.log' })
]
});
// 使用logger.error('Error message:', error)记录错误
pm2 logs查看实时日志,或配置ecosystem.config.js指定错误日志路径:module.exports = {
apps: [{
name: 'my-app',
script: 'app.js',
error_file: '/var/log/nodejs/my-app-error.log'
}]
};
调试工具可深入分析错误根源,常用以下两种:
--inspect-brk标志(如node --inspect-brk app.js),打开Chrome浏览器访问chrome://inspect,点击“为Node打开专用DevTools”,设置断点逐步调试。.vscode/launch.json文件,配置调试任务:{
"version": "0.2.0",
"configurations": [{
"type": "node",
"request": "launch",
"name": "Debug Node.js",
"program": "${workspaceFolder}/app.js",
"skipFiles": ["<node_internals>/**"]
}]
}
通过VS Code的调试面板设置断点,交互式排查错误。netstat -an | grep 端口号检查端口占用,修改应用端口或停止占用进程。chown -R nodejs:user /var/log/nodejs调整所有权。npm install安装缺失依赖,npm outdated检查过时依赖并更新。console.error或日志库记录的堆栈信息,定位语法错误或逻辑bug。避免日志文件过大占用磁盘空间,需配置日志轮转:
sudo apt-get install logrotate,创建配置文件/etc/logrotate.d/nodejs:/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 root root
}
测试配置:logrotate -d /etc/logrotate.d/nodejs(模拟运行),强制执行:logrotate -f /etc/logrotate.d/nodejs。通过以上步骤,可系统性地追踪和解决Debian系统中Node.js的错误,确保应用稳定运行。