在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应用程序将按照设置的轮转策略记录日志。