阅读量:156
在 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 transport = new DailyRotateFile({
filename: 'logs/application-%DATE%.log',
datePattern: 'YYYY-MM-DD-HH',
zippedArchive: true,
maxSize: '20m',
maxFiles: '14d'
});
const logger = winston.createLogger({
level: 'info',
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.errors({ stack: true }),
format.splat(),
format.json()
),
transports: [
transport
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: format.combine(
format.colorize(),
format.simple()
)
}));
}
module.exports = logger;
在这个配置中,我们定义了一个名为 transport 的 DailyRotateFile 实例,它负责处理日志文件的轮转。以下是一些重要的配置选项:
我们还定义了一个名为 logger 的 winston.Logger 实例,并将 transport 添加到其传输器数组中。此外,我们还添加了一个控制台传输器,以便在非生产环境中输出日志。
在你的应用程序中使用 logger.js 文件:
const logger = require('./logger');
logger.info('Hello, world!');
现在,当你的应用程序运行时,日志将按照配置的轮转策略自动轮转。