在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.errors({ stack: true }), format.splat(), format.json() ); // 日志传输 const transport = new DailyRotateFile({ filename: 'logs/application-%DATE%.log', // 日志文件名 datePattern: 'YYYY-MM-DD', // 按天轮转 zippedArchive: true, // 是否压缩旧日志文件 maxSize: '20m', // 单个日志文件最大值 maxFiles: '14d' // 保留最近14天的日志文件 }); // 创建winston实例 const logger = winston.createLogger({ level: 'info', format: myFormat, transports: [ transport ] }); module.exports = logger; logger实例来记录日志。例如,在app.js中:const logger = require('./logger'); logger.info('Hello, world!'); logger.error('An error occurred'); 这样,你的应用程序就会在每天生成一个新的日志文件,并在达到指定大小时自动轮转。同时,旧日志文件会被压缩并保留一段时间(在这个例子中是14天)。