配置Node.js日志輪轉機制可以通過多種方式實現,其中一種常見的方法是使用winston庫結合winston-daily-rotate-file模塊。以下是一個詳細的步驟指南:
首先,你需要安裝winston和winston-daily-rotate-file模塊。你可以使用npm來安裝這些模塊:
npm install winston winston-daily-rotate-file
接下來,你需要配置Winston日志記錄器,以便使用winston-daily-rotate-file進行日志輪轉。以下是一個示例配置:
const winston = require('winston');
const { createLogger, format, transports } = winston;
const DailyRotateFile = require('winston-daily-rotate-file');
// 創建一個日志傳輸器
const transport = new DailyRotateFile({
filename: 'application-%DATE%.log', // 日志文件名模板
datePattern: 'YYYY-MM-DD', // 日期模式
zippedArchive: true, // 是否壓縮舊的日志文件
maxSize: '20m', // 單個日志文件的最大大小
maxFiles: '14d' // 保留日志文件的最大天數
});
// 創建一個格式化器
const formatter = format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
);
// 創建一個Winston日志記錄器
const logger = createLogger({
level: 'info', // 日志級別
format: formatter,
transports: [
transport
]
});
// 使用日志記錄器
logger.info('Hello, world!');
filename: 日志文件名的模板,%DATE%會被替換為當前日期。datePattern: 日期模式,用于生成日志文件名。zippedArchive: 是否壓縮舊的日志文件。maxSize: 單個日志文件的最大大小,超過這個大小會創建一個新的日志文件。maxFiles: 保留日志文件的最大天數,超過這個天數的日志文件會被刪除。現在,你可以運行你的Node.js應用程序,并查看日志文件是否按照預期進行輪轉。
通過以上步驟,你可以輕松地為你的Node.js應用程序配置日志輪轉機制。