在 Linux 下实时监控 Node.js 日志,常见做法如下,按使用场景给你几种方案:
如果 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 logs
只看某个服务:
pm2 logs app-name
实时 + 错误日志:
pm2 logs --err
pm2 logs --out
✅ 适合:生产环境 Node.js 服务
如果是 Docker 容器:
docker logs -f container_name
只看最近 200 行:
docker logs -f --tail 200 container_name
✅ 适合:容器化部署
如果用 systemctl 启动:
journalctl -u node-app -f
带时间过滤:
journalctl -u node-app -f --since "10 min ago"
✅ 适合:服务器常驻服务
multitail app.log
lnav app.log
tail -f app.log | ccze -A
推荐用日志库而不是 console.log:
winstonpino(性能最好)示例(pino):
const pino = require('pino')
const logger = pino({ level: 'info' })
logger.info('server started')
logrotate 防止日志爆盘如果你愿意,可以告诉我:
我可以给你精确到命令级别的方案。