linux

如何设置Node.js日志轮转策略

小樊
39
2025-06-24 04:40:46
栏目: 编程语言

在Node.js中,可以使用第三方库winstonwinston-daily-rotate-file来实现日志轮转策略。以下是设置日志轮转策略的步骤:

  1. 首先,确保已经安装了Node.js。如果没有,请访问Node.js官网下载并安装。

  2. 在项目根目录下,使用npm或yarn安装winstonwinston-daily-rotate-file库:

    npm install winston winston-daily-rotate-file
    

    yarn add winston winston-daily-rotate-file
    
  3. 创建一个名为logger.js的文件,并在其中设置日志轮转策略:

    const winston = require('winston');
    const { format } = winston;
    const { combine, timestamp, printf } = format;
    const DailyRotateFile = require('winston-daily-rotate-file');
    
    // 自定义日志格式
    const myFormat = printf(({ timestamp, level, message }) => {
      return `${timestamp} ${level}: ${message}`;
    });
    
    // 设置日志轮转策略
    const transport = new DailyRotateFile({
      filename: 'logs/application-%DATE%.log', // 日志文件名模板
      datePattern: 'YYYY-MM-DD', // 日期格式
      zippedArchive: true, // 是否压缩归档日志文件
      maxSize: '20m', // 单个日志文件最大尺寸
      maxFiles: '14d' // 保留最近14天的日志文件
    });
    
    // 创建winston logger实例
    const logger = winston.createLogger({
      level: 'info', // 日志级别
      format: combine(timestamp(), myFormat),
      transports: [
        transport
      ]
    });
    
    module.exports = logger;
    
  4. 在需要记录日志的地方,引入并使用logger.js

    const logger = require('./logger');
    
    logger.info('这是一条信息日志');
    logger.error('这是一条错误日志');
    

现在,日志将会按照设置的轮转策略进行自动轮转。每天生成一个新的日志文件,并根据需要压缩归档旧的日志文件。

0
看了该问题的人还看了