温馨提示×

Linux Nodejs日志如何查看

小樊
38
2026-07-18 19:42:57
栏目: 编程语言

在 Linux 上查看 Node.js 日志,本质上取决于你的 日志是输出到哪里 的。下面按常见场景给你一份实用速查表。


一、最基础的:标准输出 / 标准错误

如果你的 Node.js 启动时没有做任何日志配置:

node app.js

日志一般输出到:

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

1️⃣ 前台运行

直接在终端就能看到:

node app.js

2️⃣ 后台运行(常见但难查)

node app.js &

日志还在终端里,但很快会丢失。
不推荐生产环境这样做


二、日志输出到文件

1️⃣ 使用重定向(最常见)

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

查看日志:

tail -f app.log

2️⃣ 使用 nohup

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

查看:

tail -f nohup.out
# 或
tail -f app.log

三、使用 PM2(强烈推荐)

PM2 是 Node.js 生产环境最常用的进程管理器

启动

pm2 start app.js

查看日志(核心)

# 查看所有应用日志
pm2 logs

# 实时查看
pm2 logs --lines 100

# 只看某个应用
pm2 logs app

日志路径

默认在:

~/.pm2/logs/

例如:

app-error.log
app-out.log

四、Docker 中的 Node.js 日志

1️⃣ 查看容器日志

docker logs 容器ID
docker logs -f 容器ID

2️⃣ 日志路径(容器内)

如果 Node.js 写文件:

/var/log/app.log

五、使用日志库(Winston / Pino)

如果你用了日志库,比如:

const winston = require('winston');

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

查看:

tail -f combined.log

六、系统日志(journalctl)

如果是 systemd 启动的 Node.js:

journalctl -u your-node-service -f

七、快速排查 Node.js 没日志?

✅ 检查:

  • 是否真的 console.log
  • 是否输出到文件
  • 是否被 PM2 / Docker 接管
  • 是否被 systemd 管理

八、推荐组合(生产环境)

PM2 + 日志文件 + 日志库

pm2 start app.js --name api
pm2 logs api

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

  • ✅ 你是 本地 / 服务器 / Docker / 云服务器
  • ✅ 用没用 PM2 / Docker / systemd
  • ✅ 报错还是普通日志

我可以直接给你“最适合你当前环境的查看方式”。

0