标签导航:

如何设置node.js日志轮转

本文介绍如何使用winston和winston-daily-rotate-file这两个Node.js库实现日志文件轮转功能。

步骤:

  1. 安装依赖库: 打开终端或命令行,进入项目目录,执行以下命令安装必要的npm包:

    npm install winston winston-daily-rotate-file
  2. 创建日志配置(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参数。

  3. 使用日志记录器: 在你的项目代码中引入并使用logger:

    const logger = require('./logger');
    
    logger.info('应用启动成功');
    logger.error('发生错误:', error);
    logger.warn('警告信息');

    现在,你的Node.js应用将使用配置的日志轮转策略生成和管理日志文件。 记得创建logs目录。

通过以上步骤,你可以轻松实现Node.js应用的日志轮转功能,方便日志管理和分析。 记住根据实际情况调整日志文件路径、大小和保留天数等参数。