在Debian系统上,Node.js的日志轮转机制可以通过配置文件或代码实现。以下是使用winston
库进行日志轮转配置的示例:
const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.File({ filename: 'error.log', level: 'error', maxsize: 10485760, // 10MB maxfiles: 5, // 保留5个备份文件 }), new winston.transports.File({ filename: 'combined.log', }), new winston.transports.Console(), ], }); logger.info('这是一条信息日志'); logger.error('这是一条错误日志');
在这个示例中,我们使用RotatingFileHandler
来实现日志轮转。maxsize
参数设置每个日志文件的最大大小(10MB),maxfiles
参数设置保留的旧日志文件数量(5个)。当日志文件达到指定大小时,新的日志将被创建,旧日志文件将被重命名并保留。
此外,对于Docker容器化应用,可以使用Docker的日志驱动来管理日志轮转。例如,使用json-file
日志驱动,并通过--log-opt
参数配置日志轮转策略:
docker run -d --name my_app --log-driver local --log-opt max-size=10m --log-opt max-file=3 my_image
在这个示例中,每个日志文件的最大大小设置为10MB,并保留3个旧日志文件。
通过上述配置,可以有效地管理Node.js应用的日志轮转,确保日志文件不会过大,且方便后续的日志分析和问题追踪。