在 Debian 上监控 Node.js 日志,常见做法分为 系统级监控、应用级日志管理 和 实时/集中式监控。下面按实用场景给你一个完整方案。
console.log / console.errorlogs/app.log~/.pm2/logs/ps aux | grep node
tail -f /var/log/app.log
PM2 日志:
pm2 logs
pm2 logs app-name
如果 Node.js 是 systemd 服务:
journalctl -u node-app.service -f
查看历史:
journalctl -u node-app.service --since "2025-01-01" --until "2025-01-02"
npm install -g pm2
pm2 start app.js --name my-app
pm2 logs my-app
pm2 logs my-app --lines 100
pm2 install pm2-logrotate
配置示例:
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
✅ 优点
Node.js 中:
console.log('app: info message');
rsyslog 可解析并分类(高级用法)
Node.js 应用以 systemd 启动时,日志自动进入:
journalctl
适合:
Node.js → Loki → Grafana
优点:
npm install winston
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
tail -f app.log | grep -i "error\|exception\|fatal"
✅ 小型项目
PM2 + pm2-logrotate + tail
✅ 中型项目
systemd + journalctl + 告警脚本
✅ 大型项目
Winston + PM2 + Loki + Grafana
你可以告诉我:
我可以直接给你 可复制的配置方案 ✅