阅读量:195
在 Node.js 应用程序中,可以使用第三方库 winston 或 morgan 配置日志轮转。这里以 winston 为例,介绍如何配置日志轮转。
首先,确保已经安装了 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 transport = new DailyRotateFile({
filename: 'logs/application-%DATE%.log', // 日志文件名格式
datePattern: 'YYYY-MM-DD', // 日志轮转日期格式
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() // 日志格式为 JSON
),
transports: [
transport
]
});
module.exports = logger;
现在,可以在应用程序中使用 logger.js 文件中导出的 logger 对象记录日志:
const logger = require('./logger');
logger.info('Hello, world!');
logger.error('An error occurred');
这样配置后,日志文件将每天轮转一次,并保留最近 14 天的日志文件。每个日志文件的最大尺寸为 20MB。当文件达到最大尺寸时,将自动创建一个新的日志文件。