温馨提示×

怎么实时查看Nodejs日志

小樊
41
2026-07-07 10:12:09
栏目: 编程语言

在 Node.js 中“实时查看日志”通常有几种常见做法,取决于你日志是怎么打的运行环境是什么。下面按常用场景给你一个完整指南。


一、最简单的:直接看控制台输出(开发环境)

如果你用的是:

console.log('xxx')
console.error('xxx')

本地开发

node app.js

✅ 实时输出,直接看终端即可。


二、使用日志库(推荐 ✅)

1️⃣ 使用 winston(最常用)

安装

npm install winston

示例

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.json()
  ),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'app.log' })
  ]
});

logger.info('服务启动');
logger.error('出错了');

实时查看日志文件

tail -f app.log

这是生产环境最常用方式


三、Docker 环境(非常常见)

1️⃣ 容器日志

docker logs -f 容器ID

2️⃣ 实时跟踪

docker logs -f --tail=100 容器ID

✅ 推荐:Node 日志打到 stdout,不要只写文件


四、PM2 管理 Node 进程(服务器常用)

启动

pm2 start app.js

实时查看日志

pm2 logs

只看某个服务:

pm2 logs app

只看错误日志:

pm2 logs --err

✅ PM2 会自动保存日志,支持自动切割


五、Kubernetes / 云环境

查看 Pod 日志

kubectl logs -f pod名

多容器

kubectl logs -f pod名 -c 容器名

六、实时查看 + 过滤(进阶)

grep 过滤

tail -f app.log | grep ERROR

高亮

tail -f app.log | grep --color ERROR

七、最佳实践(强烈建议)

生产环境不要只用 console.log
日志输出到 stdout + 文件
使用 winston / pino
日志格式用 JSON(方便 ELK / Loki)


八、总结速查表

场景 命令
本地开发 node app.js
日志文件 tail -f app.log
Docker docker logs -f 容器
PM2 pm2 logs
K8s kubectl logs -f pod

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

  • ✅ 你用的是 本地 / Docker / PM2 / K8s
  • ✅ 日志是 console 还是 winston / pino
  • ✅ 是否想做 日志收集(ELK / Loki)

我可以给你一个完全贴合你项目的实时日志方案

0