温馨提示×

ubuntu nodejs日志怎么检索

小樊
38
2026-10-09 10:56:18
栏目: 编程语言

在 Ubuntu 上检索 Node.js 日志,通常取决于日志写在哪里以及用什么方式运行 Node.js。下面按常见场景给你一套实用方法。


一、先看 Node.js 日志在哪里

1. 控制台输出(最基础)

如果你的 Node.js 直接运行:

node app.js

日志一般在终端,或重定向到了文件:

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

查看:

cat app.log
tail -f app.log

2. PM2 管理的 Node.js(最常见)

如果你用 PM2:

pm2 logs
pm2 logs app_name
pm2 logs --lines 100

查看某个进程的日志文件:

pm2 describe app_name

通常路径类似:

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

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

如果你用 systemd 启动 Node.js:

sudo systemctl status nodeApp
journalctl -u nodeApp
journalctl -u nodeApp -f
journalctl -u nodeApp --since "2024-01-01" --until "2024-01-02"

二、日志检索常用命令

1. 实时查看

tail -f app.log

2. 搜索关键字

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

3. 按时间范围

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

4. 统计错误数量

grep -c "Error" app.log

5. 结合 journalctl

journalctl -u nodeApp | grep "Error"

三、如果用了日志库(Winston / Pino)

Winston

日志一般在配置的文件里,例如:

logs/error.log
logs/combined.log

Pino

Pino 日志是 JSON:

cat pino.log | grep "level":50

或用 pino-pretty:

pino app.log | grep "error"

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

  • 用 PM2 / systemd
  • 日志按级别拆分(info / error)
  • 用 logrotate 防止日志爆盘
  • 大日志用 grep + tail 或 ELK / Loki

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

  • Node.js 是怎么启动的(node / pm2 / docker / systemd)
  • 日志大概在哪
  • 想检索什么内容(错误 / 接口 / 某个用户)

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

0 踩