在Node.js中,可以使用第三方庫winston
和winston-daily-rotate-file
來實現日志輪轉策略。以下是一個簡單的示例:
winston
和winston-daily-rotate-file
庫。如果沒有,請使用以下命令安裝:npm install winston winston-daily-rotate-file
logger.js
的文件,并在其中設置日志輪轉策略:const winston = require('winston');
const { format } = winston;
const DailyRotateFile = require('winston-daily-rotate-file');
// 日志格式
const myFormat = format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
);
// 日志文件存儲路徑
const logDir = './logs';
// 創建一個名為'combined.log'的日志文件,并設置輪轉策略
const transport = new DailyRotateFile({
filename: `${logDir}/combined.log`,
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxSize: '20m',
maxFiles: '14d'
});
// 創建一個winston日志實例
const logger = winston.createLogger({
level: 'info',
format: myFormat,
transports: [
transport
]
});
module.exports = logger;
在這個示例中,我們設置了以下輪轉策略:
filename
: 日志文件的名稱和存儲路徑。datePattern
: 每日日志文件的日期格式。zippedArchive
: 是否將舊的日志文件壓縮存檔。maxSize
: 單個日志文件的最大大小,超過這個大小將創建一個新的日志文件。maxFiles
: 保留日志文件的最大天數。logger.js
:const logger = require('./logger');
logger.info('Hello, world!');
現在,你的Node.js應用程序將按照設置的輪轉策略記錄日志。