在Node.js中,可以使用第三方库winston
和winston-daily-rotate-file
来实现日志轮转。以下是如何设置日志轮转的步骤:
winston
和winston-daily-rotate-file
。如果没有安装,可以使用以下命令进行安装:npm install winston winston-daily-rotate-file
logger.js
,并引入winston
和winston-daily-rotate-file
:const winston = require('winston');
const { DailyRotateFile } = require('winston-daily-rotate-file');
const logConfig = {
level: 'info', // 日志级别
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
),
transports: [
new DailyRotateFile({
filename: 'logs/app-%DATE%.log', // 日志文件名模板,%DATE%将被替换为当前日期
datePattern: 'YYYY-MM-DD', // 日期格式
zippedArchive: true, // 是否压缩归档日志文件
maxSize: '20m', // 单个日志文件最大尺寸
maxFiles: '14d' // 保留最近14天的日志文件
})
]
};
winston.Logger
实例,并将配置应用到该实例:const logger = winston.createLogger(logConfig);
module.exports = logger;
logger
实例记录日志:const logger = require('./logger');
logger.info('Hello, world!');
现在,你的Node.js应用程序将使用winston-daily-rotate-file
进行日志轮转。每天都会创建一个新的日志文件,并根据配置保留一定数量的旧日志文件。