在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');
现在,当你运行项目时,日志将按照设置的轮转策略进行轮转。