在CentOS系統中進行Node.js日志管理,可以采用以下幾種方法和工具:
正確使用不同的日志級別(如DEBUG, INFO, WARNING, ERROR, CRITICAL),以便根據需要過濾日志。
使用日志庫的特性或外部工具(如logrotate)來管理日志文件大小,自動刪除舊日志或歸檔。
考慮將日志發送到集中式的日志管理系統(如ELK Stack、Logstash)以便于管理和分析。
使用ELK Stack(Elasticsearch、Logstash、Kibana)進行日志分析和可視化,幫助管理員監控系統運行狀態,快速定位和解決問題。
npm install winston
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' }),
new winston.transports.Console(),
],
});
logger.info('這是一條信息日志');
logger.error('這是一條錯誤日志');
使用 winston-daily-rotate-file
插件實現日志按天輪換。
const { createLogger, format, transports } = require('winston');
const dailyRotateFile = require('winston-daily-rotate-file');
const logger = createLogger({
level: 'info',
format: format.combine(
format.timestamp({ format: 'MMM-DD-YYYY HH:mm:ss' }),
format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level.toUpperCase()}: ${message}`;
})
),
transports: [
new transports.DailyRotateFile({
filename: 'logs/myapp.log',
datePattern: '.yyyy-MM-dd',
zippedArchive: true,
maxFiles: '14',
}),
],
});
logger.info('Hello, Winston!');
通過上述方法和工具,可以有效地在CentOS系統中進行Node.js日志管理,確保日志的有效收集、存儲、分析和可視化。