Debian 上“JS 日志异常”通常不是单一原因,而是运行环境、应用代码、系统资源或日志配置共同作用的结果。下面按常见场景 + 排查思路给你一个系统性的分析。
throw new Error('xx'); // 未 try/catch
Promise.reject('err'); // 未 .catch()
表现:
uncaughtException / unhandledRejection✅ 建议:
process.on('uncaughtException', (err) => {
console.error('Uncaught:', err);
});
process.on('unhandledRejection', (reason) => {
console.error('Unhandled Rejection:', reason);
});
Debian 默认用 systemd + journald 管理 Node 服务。
✅ 排查:
journalctl -u your-service -f
✅ 检查服务文件:
[Service]
StandardOutput=journal
StandardError=journal
✅ 防止日志被截断:
journalctl --vacuum-size=100M
df -h
表现:
df -i
ls -l /var/log/your-app
日志时间不对,看起来像“异常”。
timedatectl
✅ 设置时区:
timedatectl set-timezone Asia/Shanghai
pm2 logs
pm2 flush # 清理旧日志
docker logs container_id
常见问题:
如:
常见问题:
✅ 示例(winston):
logger.add(new winston.transports.File({
filename: '/var/log/app/error.log',
level: 'error'
}));
Debian 日志异常 + 进程消失:
dmesg | grep -i oom
journalctl -k | grep -i kill
# 1. 看系统日志
journalctl -xe
# 2. 看 Node 服务
journalctl -u your-service -f
# 3. 磁盘 & inode
df -h
df -i
# 4. 时间
timedatectl
# 5. Node 进程状态
ps aux | grep node
你可以告诉我:
cat /etc/os-release)我可以直接帮你定位是哪一类问题,并给出最小修复方案。