“Ubuntu 上 Node.js 日志异常”可能由很多原因导致,下面按常见场景 + 排查思路给你一个系统性的说明,你可以对照看看是哪一类。
常见情况:
npm start > /dev/null 2>&1 &StandardOutput✅ 检查:
# 看进程启动命令
ps aux | grep node
# systemd 看日志
journalctl -u your-node-service -f
pm2 logs
pm2 logs app_name
const fs = require('fs');
fs.writeFileSync('/var/log/node/app.log', 'log');
如果目录不存在会直接报错。
✅ 检查:
ls -l /var/log/node
Ubuntu:
date
Node:
console.log(new Date());
✅ 修复:
sudo timedatectl set-timezone Asia/Shanghai
常见于:
✅ 检查:
locale
✅ 修复:
sudo apt install locales
sudo locale-gen zh_CN.UTF-8
console.log 在 pipe 时可能缓冲✅ 建议:
process.stdout.writedmesg | grep -i oom
journalctl -k | grep node
console.log 被 systemd 接管
✅ 正确配置:
[Service]
ExecStart=/usr/bin/node /opt/app/index.js
StandardOutput=journal
StandardError=journal
然后:
journalctl -u node-app -f
✅ 使用专业日志库:
npm i winston
✅ 生产环境:
console.log我可以给你针对性的修复命令。