温馨提示×

ubuntu nodejs日志怎样定位

小樊
40
2026-09-27 16:59:18
栏目: 编程语言

在 Ubuntu 上定位 Node.js 日志,通常从日志在哪里 → 怎么看 → 怎么分析三步走。下面按常见场景给你一份实用指南。


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

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

1️⃣ 直接命令行运行

node app.js
  • 日志直接在 终端
  • 重定向后可保存:
node app.js > app.log 2>&1

2️⃣ 使用 PM2(最常见)

pm2 logs
pm2 logs app-name
pm2 logs --lines 100

日志文件位置:

~/.pm2/logs/

例如:

~/.pm2/logs/app-name-out.log
~/.pm2/logs/app-name-error.log

3️⃣ 使用 systemd(生产服务器常见)

如果 Node 是通过 service 启动:

journalctl -u your-node-service
journalctl -u your-node-service -f   # 实时
journalctl -u your-node-service --since "2024-01-01 10:00"

Service 文件一般在:

/etc/systemd/system/xxx.service

4️⃣ Docker 容器

docker logs container_name
docker logs -f container_name

二、Node.js 应用内日志位置

常见日志库

  • console.log / console.error
  • winston
  • pino
  • log4js

一般会在代码里指定:

winston.add(new winston.transports.File({ filename: 'logs/error.log' }));

查找日志文件:

find / -name "*.log" 2>/dev/null | grep node

三、快速定位问题日志(实战技巧)

✅ 查错误

grep -i error app.log
grep -i "uncaught" app.log

✅ 查某时间段

sed -n '/10:00/,/10:30/p' app.log

✅ 实时跟踪

tail -f app.log

✅ 看系统资源相关

dmesg | grep node

四、推荐的标准做法(生产环境)

  • ✅ 用 PM2 / systemd
  • ✅ 日志按级别分离(info / error)
  • ✅ 用 logrotate 防止日志爆盘
  • ✅ 接入集中日志(ELK / Loki / Grafana)

五、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. Node.js 是怎么启动的(PM2 / systemd / docker / 直接 node)
  2. 是 报错、性能问题 还是 找不到日志
  3. Ubuntu 版本

我可以直接帮你写 排查命令或日志配置示例。

0 踩