在Node.js中,可以使用第三方库winston
和winston-daily-rotate-file
来实现日志轮转策略。以下是一个简单的配置示例:
- 首先,确保已经安装了
winston
和winston-daily-rotate-file
这两个库。如果没有,请使用以下命令进行安装:
npm install winston winston-daily-rotate-file
- 接下来,在你的Node.js项目中创建一个日志配置文件(例如:
logger.js
),并添加以下内容:
const winston = require('winston'); const { format } = winston; const DailyRotateFile = require('winston-daily-rotate-file'); // 日志级别 const level = 'info'; // 日志格式 const logFormat = format.combine( format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.printf(({ timestamp, level, message }) => { return `${timestamp} [${level.toUpperCase()}]: ${message}`; }) ); // 创建一个winston日志实例 const logger = winston.createLogger({ level, format: logFormat, transports: [ new DailyRotateFile({ filename: 'logs/application-%DATE%.log', // 日志文件名模板 datePattern: 'YYYY-MM-DD', // 按天轮转 zippedArchive: true, // 是否压缩旧日志文件 maxSize: '20m', // 单个日志文件最大值 maxFiles: '14d' // 保留日志文件天数 }) ] }); module.exports = logger;
- 在你的主要应用文件(例如:
app.js
)中引入并使用这个日志配置:
const logger = require('./logger'); logger.info('Hello, world!');
现在,你的Node.js应用程序将使用winston-daily-rotate-file
库来实现日志轮转策略。每天会生成一个新的日志文件,并且会自动压缩和删除旧的日志文件。