温馨提示×

ubuntu nodejs日志如何搜

小樊
44
2026-09-30 15:58:40
栏目: 编程语言

在 Ubuntu 上排查 Node.js 日志,通常分 “日志在哪里” 和 “怎么搜” 两部分。下面按常见场景给你总结。


一、Node.js 日志一般在哪?

1. 控制台输出(最常见)

如果你直接运行:

node app.js

日志就在终端里,一般用:

node app.js 2>&1 | tee app.log

把日志保存下来。

2. PM2 管理的 Node 服务(非常常见)

pm2 logs
pm2 logs app-name
pm2 logs --lines 200

查日志文件:

~/.pm2/logs/

3. 系统服务(systemd)

如果是:

systemctl status node

或

systemctl status my-node-app

日志在:

journalctl -u my-node-app
journalctl -u my-node-app -f      # 实时
journalctl -u my-node-app --since "2024-01-01 00:00"

4. Docker 里的 Node

docker logs container_name
docker logs -f container_name

二、常用搜索命令

1. grep 搜索关键字

grep "Error" app.log
grep -i "timeout" app.log
grep -C 5 "Exception" app.log   # 上下5行

2. 实时搜索

tail -f app.log | grep "ERROR"

3. 按时间过滤

grep "2024-06-01 10:" app.log

4. journalctl 搜索

journalctl -u my-node-app | grep "Error"
journalctl -u my-node-app --since "1 hour ago" | grep "500"

5. 多文件搜索

grep -r "ECONNRESET" /var/log/node/

三、Node.js 代码里的日志建议

const fs = require('fs');
const logStream = fs.createWriteStream('app.log', { flags: 'a' });
console.log = (...args) => logStream.write(args.join(' ') + '\n');

或用:

  • winston
  • pino
  • log4js

四、快速排查思路

  1. 先确认怎么运行的(PM2 / systemd / docker)
  2. 找到日志位置
  3. 搜 Error / Exception / Timeout / 500
  4. 用 tail -f 复现问题

如果你愿意,可以告诉我:

  • Node 是怎么启动的(PM2 / docker / systemd)
  • 日志大概在哪
  • 想搜什么错误

我可以给你精确命令。

0 踩