温馨提示×

linux下nodejs日志怎么读

小樊
45
2026-09-08 13:47:27
栏目: 编程语言

在 Linux 下查看 Node.js 日志,主要看你日志写在哪里用什么方式运行 Node 程序。下面按常见场景给你一份实用指南。


一、先确认日志在哪

1️⃣ 控制台输出(最基础)

如果 Node 程序只是用 console.log / console.error,默认输出到:

  • 标准输出:stdout
  • 标准错误:stderr

直接前台运行

node app.js

终端里直接看。


2️⃣ 后台运行(非常重要)

如果你用:

node app.js &

nohup node app.js &

日志一般在这里:

# nohup 默认
nohup.out

# 或手动重定向
node app.js > app.log 2>&1

查看:

tail -f app.log

二、常见运行方式 & 日志位置

✅ PM2(最常见)

pm2 logs
pm2 logs appname
pm2 logs --lines 100

日志文件位置:

~/.pm2/logs/

✅ systemd(生产服务器常见)

如果你的 Node 服务是 systemd 管理的:

journalctl -u your-service-name
journalctl -u your-service-name -f
journalctl -u your-service-name --since "10 min ago"

✅ Docker

docker logs container_name
docker logs -f container_name

三、常用查看日志命令

实时查看

tail -f xxx.log

查看最后 N 行

tail -n 200 xxx.log

搜索关键字

grep "ERROR" xxx.log
grep -C 5 "Exception" xxx.log

大文件分页

less xxx.log
# 按 / 搜索,q 退出

四、Node.js 日志最佳实践(建议)

1️⃣ 用日志库(别只用 console)

  • winston
  • pino(性能最好)
  • log4js

示例(winston):

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' })
  ]
});

2️⃣ 日志分级

  • info
  • warn
  • error

3️⃣ 生产环境

  • 不要输出到控制台
  • 日志按天切割(logrotate / pino-rotate)

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

你可以告诉我:

  1. 你是怎么运行 Node 的(pm2 / docker / systemd / 直接 node)
  2. 有没有用到日志库
  3. 是看错误还是性能问题

我可以直接给你最合适的命令或配置示例

0