在Node.js中,可以使用第三方库winston
和winston-daily-rotate-file
来实现日志轮转策略。以下是设置日志轮转策略的步骤:
首先,确保已经安装了Node.js。如果没有,请访问Node.js官网下载并安装。
在项目根目录下,使用npm或yarn安装winston
和winston-daily-rotate-file
库:
npm install winston winston-daily-rotate-file
或
yarn add winston winston-daily-rotate-file
创建一个名为logger.js
的文件,并在其中设置日志轮转策略:
const winston = require('winston');
const { format } = winston;
const { combine, timestamp, printf } = format;
const DailyRotateFile = require('winston-daily-rotate-file');
// 自定义日志格式
const myFormat = printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
});
// 设置日志轮转策略
const transport = new DailyRotateFile({
filename: 'logs/application-%DATE%.log', // 日志文件名模板
datePattern: 'YYYY-MM-DD', // 日期格式
zippedArchive: true, // 是否压缩归档日志文件
maxSize: '20m', // 单个日志文件最大尺寸
maxFiles: '14d' // 保留最近14天的日志文件
});
// 创建winston logger实例
const logger = winston.createLogger({
level: 'info', // 日志级别
format: combine(timestamp(), myFormat),
transports: [
transport
]
});
module.exports = logger;
在需要记录日志的地方,引入并使用logger.js
:
const logger = require('./logger');
logger.info('这是一条信息日志');
logger.error('这是一条错误日志');
现在,日志将会按照设置的轮转策略进行自动轮转。每天生成一个新的日志文件,并根据需要压缩归档旧的日志文件。