在 Debian 上监控 Node.js 日志,常见做法取决于你是怎么运行 Node.js 的(裸跑、PM2、systemd、Docker 等)。下面按场景给你一套实用方案。
/var/log/xxx.lognode app.js 输出pm2 logs
pm2 logs appname
journalctl -u yourapp.service -f
tail -f /path/to/node.log
多文件:
tail -f /var/log/node/*.log
/etc/systemd/system/nodeapp.service
[Unit]
Description=Node App
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/app/app.js
WorkingDirectory=/opt/app
User=node
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nodeapp
journalctl -u nodeapp -f
✅ 好处:自动重启、日志进 journal、可配合 logrotate
/etc/logrotate.d/nodeapp
/var/log/nodeapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
apt install lnav
lnav /var/log/nodeapp/
tail -f app.log | grep --line-buffered "ERROR" | mail -s "Node Error" admin@x.com
winston / pinoconst winston = require('winston')
logger.add(new winston.transports.File({ filename: '/var/log/nodeapp/app.log' }))
| 场景 | 推荐 |
|---|---|
| 本地开发 | tail -f |
| 单台服务器 | systemd + journalctl |
| 多进程 | PM2 |
| 生产集群 | Loki / ELK |
如果你愿意,可以告诉我:
我可以直接给你一份可复制的配置。