在 Linux 下实时监控 Node.js 日志,常见做法分为 “直接用命令看日志文件” 和 “用日志/监控工具” 两类。下面按使用频率和场景给你一个实用清单。
tail -f(最基础)如果 Node.js 把日志写到了文件,比如 app.log:
tail -f app.log
只看错误:
tail -f app.log | grep ERROR
从末尾 100 行开始看:
tail -n 100 -f app.log
✅ 适合:本地、测试、简单排查
less +F(可暂停、搜索)less +F app.log
Ctrl + C 暂停/关键字 搜索F 继续跟随✅ 适合:长日志、需要搜索
multitail(多日志同时看)multitail app.log error.log
支持:
安装:
apt install multitail # Debian/Ubuntu
yum install multitail # CentOS
如果是这样启动的:
node app.js
日志直接在终端输出,用:
Ctrl + C
如果后台运行:
node app.js > app.log 2>&1 &
tail -f app.log
如果你用 PM2:
pm2 logs
只看某个服务:
pm2 logs app
实时 + 错误分离:
pm2 logs --err
pm2 logs --out
✅ 优点:
journalctl(systemd)如果 Node.js 是 systemd 服务:
journalctl -u node-app.service -f
带时间:
journalctl -u node-app -f --since "5 min ago"
watch(定时刷新)不适合实时流,但适合状态类:
watch -n 2 "tail -n 20 app.log"
Node.js 示例(winston + filebeat):
const winston = require('winston');
| 场景 | 推荐 |
|---|---|
| 本地调试 | tail -f |
| 单台服务器 | pm2 logs |
| systemd 服务 | journalctl -f |
| 多服务/集群 | ELK / Loki |
| 错误追踪 | Sentry |
如果你愿意,可以告诉我:
我可以直接给你一条最合适的命令或配置。