在 Ubuntu 上监控 Node.js 日志,通常有系统级日志、应用日志、实时监控工具、集中式日志方案几种思路。下面按常见场景给你一个实用清单。
console.log('info')
console.error('error')
运行时直接输出到终端或 systemd 日志。
const fs = require('fs');
fs.appendFileSync('app.log', 'something happened\n');
或用日志库(winston / pino / log4js)。
node app.js
tail -f app.log
如果你用 systemd 管理 Node.js:
sudo journalctl -u node-app -f
查看错误:
sudo journalctl -u node-app -p err -f
npm install -g pm2
pm2 start app.js
pm2 logs
pm2 monit
查看某个应用:
pm2 logs app
npm install -g nodemon
nodemon app.js
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.error('db failed');
# 查看 Node 进程
ps aux | grep node
# 查看端口
sudo lsof -i:3000
# 查看系统日志
dmesg | tail
| 场景 | 推荐 |
|---|---|
| 本地开发 | nodemon + console |
| 服务器运行 | PM2 + journalctl |
| 生产环境 | PM2 + winston + Loki/Sentry |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。