在 Ubuntu 下查看 Node.js 日志,要看你的 Node.js 是怎么运行的(直接运行、PM2、Docker、systemd 等)。下面按常见场景给你一个完整说明。
一、直接运行 Node.js(前台 / 后台)
1️⃣ 直接前台运行
node app.js
日志会直接输出到 终端(stdout / stderr)。
2️⃣ 后台运行(常见但不推荐)
node app.js > app.log 2>&1 &
查看日志:
tail -f app.log
二、使用 PM2(最推荐 ✅)
查看所有应用
pm2 list
查看日志(全部)
pm2 logs
查看指定应用日志
pm2 logs app-name
实时查看
pm2 logs app-name --lines 100
日志文件位置
~/.pm2/logs/
三、使用 systemd(服务器常用)
如果你是通过 systemd 管理的 Node.js 服务:
查看服务状态
systemctl status your-node-service
查看日志(journalctl)
journalctl -u your-node-service -f
查看历史日志
journalctl -u your-node-service --since "2025-01-01" --until "2025-01-02"
四、Docker 中运行 Node.js
查看容器日志
docker logs 容器ID
实时查看
docker logs -f 容器ID
五、Node.js 自身打印的日志
console.log / console.error
console.log('info');
console.error('error');
日志级别(常见)
| 类型 | 输出位置 |
|---|---|
| console.log | stdout |
| console.error | stderr |
六、常见日志查看命令速查
# 实时查看
tail -f app.log
# 查看最后 100 行
tail -n 100 app.log
# 搜索错误
grep -i error app.log
# 搜索最近错误
grep -i error app.log | tail -n 20
七、建议的日志最佳实践 ✅
- 使用 PM2 + winston / pino
- 区分:
error.logaccess.log
- 不要只依赖
console.log
八、如果你愿意,我可以帮你:
- 判断你现在的 Node.js 是怎么运行的
- 帮你配置 systemd / PM2
- 推荐一个生产级日志方案(winston / pino)
你可以直接贴一下:
ps -ef | grep node
或告诉我你是 本地开发 / 服务器 / Docker / 云服务器。