在 Ubuntu 上“看不到 Node.js 日志”通常不是 Node 本身不写日志,而是日志去哪儿了 / 怎么启动的问题。下面按最常见原因逐条说明。
Node.js 不会像 Nginx/Apache 那样自动生成日志文件。
console.log() 只输出到 标准输出(stdout)console.error() 输出到 标准错误(stderr)✅ 所以:
如果你没配置日志重定向,Ubuntu 上就没有 nodejs 日志文件
如果你是用:
systemctl start mynode.service
那么日志不在文件里,而在 journald 中。
查看方式:
journalctl -u mynode.service
实时查看:
journalctl -u mynode.service -f
✅ Ubuntu 推荐方式(不是 /var/log/nodejs.log)
如果你这样启动:
node app.js
日志只在终端显示,退出后就没了。
想写文件:
node app.js >> /var/log/nodejs.log 2>&1
或在 systemd 中:
StandardOutput=append:/var/log/nodejs.log
StandardError=append:/var/log/nodejs.log
如果你用 PM2:
pm2 logs
或:
pm2 logs appname
PM2 默认日志在:
~/.pm2/logs/
有时不是“没日志”,而是:
console.logtry/catch 吞掉检查进程是否在跑:
ps aux | grep node
在 Docker 中:
docker logs 容器名
Node 日志默认进容器日志,不在 Ubuntu 文件系统里。
| 场景 | 看日志方式 |
|---|---|
| 终端运行 | 终端输出 |
| systemd | journalctl -u 服务名 |
| pm2 | pm2 logs |
| docker | docker logs |
| 手动重定向 | 你指定的 log 文件 |
如果你愿意,可以把:
console.log发出来,我可以直接帮你定位“日志到底去哪了”。