本文介绍如何使用winston和winston-daily-rotate-file这两个Node.JS库实现日志文件轮转功能。
前提条件: 确保已安装Node.js。 若未安装,请访问Node.js官网下载安装。
步骤:
-
安装依赖库: 打开终端或命令行,进入项目目录,执行以下命令安装必要的npm包:
npm install winston winston-daily-rotate-file
-
创建日志配置(logger.js): 创建一个名为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 }) => `${timestamp} ${level}: ${message}`) ), transports: [ new DailyRotateFile({ filename: 'logs/application-%DATE%.log', // 日志文件路径及命名模式 datePattern: 'yyYY-MM-DD', // 日期格式 zippedArchive: true, // 是否压缩旧日志 maxSize: '20m', // 单个日志文件最大大小 maxFiles: '14d' // 保留最大日志文件天数 }) ] }); module.exports = logger;
该配置将日志写入logs目录下,文件名格式为application-YYYY-MM-DD.log,每天生成一个新的日志文件,旧日志文件会被压缩并保留14天。 你可以根据需要调整maxSize和maxFiles参数。
-
使用日志记录器: 在你的项目代码中引入并使用logger:
const logger = require('./logger'); logger.info('应用启动成功'); logger.error('发生错误:', error); logger.warn('警告信息');
现在,你的Node.js应用将使用配置的日志轮转策略生成和管理日志文件。 记得创建logs目录。
通过以上步骤,你可以轻松实现Node.js应用的日志轮转功能,方便日志管理和分析。 记住根据实际情况调整日志文件路径、大小和保留天数等参数。