在Debian系統上監控Node.js應用程序的日志有多種方法,以下是一些常用的工具和方法:
console.log 和 console.error在Node.js代碼中直接使用 console.log 和 console.error 來輸出日志信息。這些信息默認會發送到標準輸出(stdout)和標準錯誤(stderr),可以通過重定向這些輸出到文件來監控日志。
node app.js > logs/output.log 2>&1
使用像 Winston 或 Morgan 這樣的日志管理庫可以幫助你更好地管理和監控日志。這些庫提供了日志級別、日志格式化、日志輪轉等功能。
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('This is an info log.');
logger.error('This is an error log.');
PM2 是一個流行的Node.js進程管理器,它可以用來監控和管理Node.js應用程序。PM2 提供了日志管理功能,可以實時查看日志,并且支持日志輪轉。
npm install pm2 -g
pm2 start app.js --name "my-app"
pm2 logs my-app
可以配置Node.js應用程序將日志發送到系統的日志服務,如 syslog 或 journald。這通常需要在Node.js應用程序中進行額外的配置。
使用像 Datadog、New Relic 或 Loggly 這樣的第三方監控工具可以幫助你監控Node.js應用程序的性能和日志。這些工具通常提供了更高級的監控和分析功能。
為了避免日志文件過大,可以使用 logrotate 工具來實現日志輪轉。logrotate 可以定期壓縮、移動或刪除日志文件。
sudo apt-get install logrotate
sudo nano /etc/logrotate.d/my-app
Loki 是一個受Prometheus啟發的水平可擴展、高可用、多租戶日志聚合系統。它與Prometheus緊密集成,適用于監視和日志的一體化解決方案。
Splunk是一款功能完善、強大的數據和日志分析平臺,涵蓋機器數據收集、索引、搜索、監控、分析、可視化、告警等功能。