温馨提示×

ubuntu nodejs日志怎样检索

小樊
36
2026-10-06 11:26:39
栏目: 编程语言

在 Ubuntu 上检索 Node.js 日志,常见做法主要取决于日志写在哪里以及用什么方式运行 Node.js。下面按场景给你系统说明。


一、先看 Node.js 日志通常在哪

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

如果你直接运行:

node app.js

日志一般输出到:

  • 标准输出(stdout)
  • 标准错误(stderr)

但不会自动保存,关掉终端就没了。


2. 使用 PM2(非常常见)

如果你用 PM2 管理 Node.js:

pm2 logs
pm2 logs app_name
pm2 logs --lines 100

日志文件位置:

~/.pm2/logs/

3. Systemd 服务(生产环境)

如果 Node.js 是 systemd 服务:

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

4. 自定义日志文件

比如你用 winston、pino 写到:

/var/log/node/app.log

那就直接查文件。


二、常用日志检索命令(重点)

1. 实时查看日志

tail -f app.log

PM2:

pm2 logs

Systemd:

journalctl -u node-app -f

2. 按关键字搜索

grep "ERROR" app.log
grep -i "timeout" app.log

显示行号:

grep -n "Error" app.log

3. 实时过滤日志

tail -f app.log | grep "ERROR"

4. 查看某时间段日志

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

5. 统计错误数量

grep -c "ERROR" app.log

6. 查看最近 N 行

tail -n 200 app.log

三、结合 journalctl 的高级检索

# 最近 1 小时
journalctl -u node-app --since "1 hour ago"

# 指定时间
journalctl -u node-app --since "2024-06-01 10:00" --until "2024-06-01 12:00"

# 按关键字
journalctl -u node-app | grep " Uncaught"

四、推荐的 Node.js 日志实践(避免踩坑)

  1. 不要只 console.log

    • 生产环境用 winston / pino
  2. 日志分级

    • info / warn / error
  3. 日志落盘

    node app.js >> /var/log/node/app.log 2>&1
    
  4. 用 PM2 或 systemd

    • 自动管理日志
    • 支持日志切割

五、如果你愿意,我可以更具体帮你

你可以告诉我:

  • ✅ Node.js 是怎么启动的(node / pm2 / docker / systemd)
  • ✅ 日志写在哪(终端 / 文件 / 系统日志)
  • ✅ 想检索什么内容(错误 / 接口 / 用户ID)

我可以直接给你精准命令。

0 踩