在 Linux 上 Node.js 日志“丢失”通常不是真的消失,而是输出位置不对、被重定向、被轮转或进程异常退出。下面按「最常见原因 → 排查命令」给你一套实用清单。
ps -ef | grep node
重点看:
> log.txt 2>&1 &pm2 / systemd / docker常见“假丢失”:
node app.js > /dev/null 2>&1 &
✅ 解决:改成
node app.js >> /var/log/node/app.log 2>&1 &
pm2 logs
pm2 logs appname
pm2 info appname
里面的:
out log patherror log pathPM2 默认可能:
ls -lh ~/.pm2/logs
journalctl -u your-node-service -f
在 service 文件里加:
StandardOutput=append:/var/log/node/app.log
StandardError=append:/var/log/node/error.log
Node 崩了 → 日志中断
dmesg | grep node
或
journalctl -p err -f
df -h
Node 写不进日志会“静默失败”
ls -lh /var/log/node/
cat /etc/logrotate.d/node
docker logs container_name
或
docker inspect container_name | grep LogPath
✅ Node 代码里:
process.on('uncaughtException', e => {
console.error('FATAL', e);
process.exit(1);
});
✅ 用专业日志库:
winstonpino✅ 不要只依赖 console.log
ps -ef | grep node
pm2 logs
journalctl -u node-service -f
df -h
ls -lh /var/log/node
如果你愿意,可以告诉我:
我可以直接帮你定位到具体原因。