在 Ubuntu 上查看 Node.js 日志 取决于你如何运行 Node.js 应用。下面按常见场景给你一份速查表。
一、直接在终端运行(最常见)
如果你是这样启动的:
node app.js
那么日志会直接输出到 终端(stdout / stderr),无法“查看历史日志”,只能:
- 重新运行并观察
- 或重定向日志(见下文)
二、使用 PM2 管理 Node.js(强烈推荐 ✅)
1️⃣ 查看实时日志
pm2 logs
只看某个应用:
pm2 logs app-name
2️⃣ 查看错误日志
pm2 logs app-name --err
3️⃣ 查看历史日志文件
PM2 默认日志位置:
~/.pm2/logs/
例如:
app-name-out.log
app-name-error.log
三、使用 systemd(服务器常用)
如果你用 systemd 管理 Node.js 服务:
1️⃣ 查看日志
sudo journalctl -u your-node-service.service
实时查看:
sudo journalctl -u your-node-service.service -f
2️⃣ 指定行数
journalctl -u your-node-service.service -n 100
四、Docker 中运行 Node.js
docker logs 容器名或ID
实时查看:
docker logs -f 容器名
五、Node.js 应用的日志文件(手动写日志)
如果你在代码里写了日志文件:
fs.appendFileSync('app.log', 'hello\n');
查看:
cat app.log
tail -f app.log # 实时
less app.log # 翻页
六、标准输出 / 错误重定向(临时方案)
node app.js > app.log 2>&1
查看:
tail -f app.log
七、常见排查命令
# 查看 Node 进程
ps aux | grep node
# 查看端口占用(如 3000)
lsof -i:3000
八、推荐组合(生产环境 ✅)
✅ PM2 + 日志文件
✅ 或 systemd + journalctl
如果你愿意,可以告诉我:
- 你是 本地开发还是服务器?
- 用 PM2 / systemd / Docker / 直接运行?
- Node 应用是 Express / NestJS / 其他?
我可以给你针对你环境的精确查看方式。