温馨提示×

如何设置Node.js日志轮转

小樊
36
2025-03-05 06:14:24
栏目: 编程语言

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

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

  2. 打开终端或命令提示符,进入项目目录。

  3. 使用npm安装winstonwinston-daily-rotate-file库:

    npm install winston winston-daily-rotate-file
    
  4. 在项目中创建一个名为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 }) => {
          return `${timestamp} ${level}: ${message}`;
        })
      ),
      transports: [
        new DailyRotateFile({
          filename: 'logs/application-%DATE%.log',
          datePattern: 'YYYY-MM-DD',
          zippedArchive: true,
          maxSize: '20m',
          maxFiles: '14d'
        })
      ]
    });
    
    module.exports = logger;
    

    在这个示例中,我们设置了以下选项:

    • filename: 日志文件的名称,其中%DATE%将被替换为当前日期。
    • datePattern: 用于日志文件名的日期格式。
    • zippedArchive: 是否将旧日志文件压缩为ZIP文件。
    • maxSize: 单个日志文件的最大大小,超过此大小的文件将被轮转。
    • maxFiles: 保留的最大日志文件数量,超过此数量的旧文件将被删除。
  5. 在项目中使用logger.js文件记录日志:

    const logger = require('./logger');
    
    logger.info('Hello, world!');
    logger.error('An error occurred');
    

现在,当你运行项目时,日志将按照设置的轮转策略进行轮转。

0