温馨提示×

linux nodejs日志怎么实时监控

小樊
38
2026-10-26 02:28:49
栏目: 编程语言

在 Linux 下实时监控 Node.js 日志,常见做法如下,按使用场景给你几种方案:


一、最基础:tail 实时查看日志文件

如果 Node.js 把日志输出到文件(如 app.log):

tail -f app.log

只查看最新 100 行并实时跟踪:

tail -n 100 -f app.log

按关键字过滤:

tail -f app.log | grep ERROR

✅ 适合:临时排查问题


二、PM2 管理的 Node.js(推荐)

如果用 PM2 启动 Node.js:

pm2 logs

只看某个服务:

pm2 logs app-name

实时 + 错误日志:

pm2 logs --err
pm2 logs --out

✅ 适合:生产环境 Node.js 服务


三、Docker 中的 Node.js

如果是 Docker 容器:

docker logs -f container_name

只看最近 200 行:

docker logs -f --tail 200 container_name

✅ 适合:容器化部署


四、systemd 管理的 Node.js

如果用 systemctl 启动:

journalctl -u node-app -f

带时间过滤:

journalctl -u node-app -f --since "10 min ago"

✅ 适合:服务器常驻服务


五、增强工具(更好用)

1. multitail(多窗口)

multitail app.log

2. lnav(日志分析)

lnav app.log

3. 彩色 + 高亮

tail -f app.log | ccze -A

六、Node.js 自身日志建议

推荐用日志库而不是 console.log:

  • winston
  • pino(性能最好)

示例(pino):

const pino = require('pino')
const logger = pino({ level: 'info' })
logger.info('server started')

七、生产环境最佳实践

  • 日志写入文件 + PM2 / systemd
  • 用 logrotate 防止日志爆盘
  • 关键日志接入 ELK / Loki / Grafana

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

  • Node.js 是怎么启动的(PM2 / Docker / 直接 node)
  • 日志是文件还是 stdout

我可以给你精确到命令级别的方案。

0 踩