在 Debian 下 Node.js 日志为空,通常不是 Node 本身的问题,而是运行方式 / 日志重定向 / 服务管理导致的。下面按常见原因逐步排查。
>/dev/null 2>&1 & 启动node app.js > /dev/null 2>&1 &
这会导致所有日志都丢弃。
✅ 解决:
node app.js > app.log 2>&1 &
nohup 但没看 nohup.outnohup node app.js &
日志默认在:
nohup.out
如果不在当前目录,可能你找错了地方。
console.log,但 systemd 收集日志如果你是用:
systemctl start mynode
✅ 查看日志:
journalctl -u mynode -f
而不是直接看文件。
/etc/systemd/system/mynode.service 示例:
[Service]
ExecStart=/usr/bin/node /opt/app/app.js
StandardOutput=journal
StandardError=journal
如果写成:
StandardOutput=null
日志就是空的。
确认你有:
console.log('server start')
而不是只在报错时才打印。
如果你用:
pm2 start app.js
✅ 查看日志:
pm2 logs
文件位置:
~/.pm2/logs/
Node 日志在容器里:
docker logs 容器名
如果 Docker 启动加了:
docker run -d --log-driver=none
日志就是空的。
请确认以下任意一条成立:
> /dev/nulljournalctl)pm2 logs)console.lognode app.js >> /var/log/node/app.log 2>&1
如果你愿意,可以贴出:
我可以直接帮你定位是哪一层“吞掉了日志”。