在Node.js中,可以使用第三方库winston
和winston-daily-rotate-file
来实现日志轮转。以下是设置日志轮转的步骤:
-
首先,确保已经安装了Node.js。如果没有,请访问Node.js官网下载并安装。
-
打开终端或命令提示符,进入项目目录。
-
使用npm安装
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 logger = winston.createLogger({ level: 'info', format: format.combine( format.timestamp(), format.printf(({ timestamp, level, message }) => { return `${timestamp} ${level}: ${message}`; }) ), transports: [ new DailyRotateFile({ filename: 'logs/application-%DATE%.log', datePattern: 'YYYY-MM-DD', zippedArchive: true, maxSize: '20m', maxFiles: '14d' }) ] }); module.exports = logger;
在这个示例中,我们设置了以下选项:
filename
: 日志文件的名称,其中%DATE%
将被替换为当前日期。datePattern
: 用于日志文件名的日期格式。zippedArchive
: 是否将旧日志文件压缩为ZIP文件。maxSize
: 单个日志文件的最大大小,超过此大小的文件将被轮转。maxFiles
: 保留的最大日志文件数量,超过此数量的旧文件将被删除。
-
在项目中使用
logger.js
文件记录日志:const logger = require('./logger'); logger.info('Hello, world!'); logger.error('An error occurred');
现在,当你运行项目时,日志将按照设置的轮转策略进行轮转。