温馨提示×

Ubuntu Nodejs日志怎么定位

小樊
46
2026-08-05 09:51:50
栏目: 编程语言

在 Ubuntu 上定位 Node.js 日志,一般从「日志在哪」和「怎么查」两个角度入手。下面按常见场景给你一个实用清单。


一、先确认 Node.js 是怎么跑的

不同运行方式,日志位置完全不同:

运行方式 常见日志位置
直接 node app.js 终端输出(stdout / stderr)
npm start 终端
PM2 PM2 管理日志
systemd 服务 journalctl
Docker docker logs
Nginx 反向代理 Nginx 日志

二、常见 Node.js 日志定位方法

1️⃣ 直接运行(前台)

node app.js

日志在终端输出,包括:

  • console.log
  • console.error
  • 未捕获异常

✅ 查看方式:

# 如果你重定向过
node app.js > app.log 2>&1

2️⃣ PM2(最常见)

查看所有应用

pm2 list

查看实时日志

pm2 logs
pm2 logs app_name

只看错误日志

pm2 logs --err

日志文件位置

~/.pm2/logs/

常见文件:

app-name-out.log
app-name-error.log

3️⃣ systemd 服务(生产环境常见)

查看服务名

systemctl list-units --type=service | grep node

查看实时日志

journalctl -u your-node-service -f

查看最近 100 行

journalctl -u your-node-service -n 100

✅ Node.js 中的 console.log 会被 systemd 捕获


4️⃣ Docker 容器

查看日志

docker logs 容器名
docker logs -f 容器名

查看最近 100 行

docker logs --tail 100 容器名

5️⃣ Nginx 反向代理(前后端分离)

Node 本身没问题,但请求失败,可能是 Nginx:

# 访问日志
/var/log/nginx/access.log

# 错误日志
/var/log/nginx/error.log

查看:

tail -f /var/log/nginx/error.log

三、Node.js 应用内日志定位技巧

✅ 如果你用了日志库

常见库:

  • winston
  • pino
  • morgan(HTTP 请求)

查看配置里的 filename

new winston.transports.File({ filename: 'logs/app.log' })

✅ 未捕获异常(非常重要)

process.on('uncaughtException', (err) => {
  console.error('Uncaught Exception:', err);
});

process.on('unhandledRejection', (err) => {
  console.error('Unhandled Rejection:', err);
});

否则错误可能“消失”。


四、快速排查流程(推荐)

# 1. 看 Node 进程
ps -ef | grep node

# 2. 如果是 PM2
pm2 logs

# 3. 如果是 systemd
journalctl -u your-service -f

# 4. 看端口是否正常
netstat -tlnp | grep 3000

# 5. 看系统资源
top / htop

五、常见坑

❌ 日志没输出
→ 输出被重定向 / 被 PM2 管理 / 在 Docker 里

❌ 日志太多找不到
→ 用 grep

pm2 logs | grep ERROR
journalctl -u service | grep 500

❌ 日志时间不对
→ 检查服务器时区

timedatectl

六、如果你愿意,我可以帮你精确定位

你可以直接贴: 1️⃣ Node.js 启动方式(PM2 / systemd / docker / 直接运行)
2️⃣ 报错信息或现象
3️⃣ Ubuntu 版本

我可以一步一步帮你找到 具体日志文件在哪

0