debian

Node.js日志轮转如何设置

小樊
31
2025-05-17 20:49:10
栏目: 编程语言

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

  1. 首先,确保已经安装了winstonwinston-daily-rotate-file。如果没有安装,可以使用以下命令进行安装:
npm install winston winston-daily-rotate-file
  1. 在你的Node.js项目中,创建一个日志配置文件,例如logger.js,并引入winstonwinston-daily-rotate-file
const winston = require('winston');
const { DailyRotateFile } = require('winston-daily-rotate-file');
  1. 设置日志轮转的配置选项。以下是一个示例配置:
const logConfig = {
  level: 'info', // 日志级别
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.printf(({ timestamp, level, message }) => {
      return `${timestamp} ${level}: ${message}`;
    })
  ),
  transports: [
    new DailyRotateFile({
      filename: 'logs/app-%DATE%.log', // 日志文件名模板,%DATE%将被替换为当前日期
      datePattern: 'YYYY-MM-DD', // 日期格式
      zippedArchive: true, // 是否压缩归档日志文件
      maxSize: '20m', // 单个日志文件最大尺寸
      maxFiles: '14d' // 保留最近14天的日志文件
    })
  ]
};
  1. 创建一个winston.Logger实例,并将配置应用到该实例:
const logger = winston.createLogger(logConfig);
module.exports = logger;
  1. 在你的Node.js项目中使用这个logger实例记录日志:
const logger = require('./logger');

logger.info('Hello, world!');

现在,你的Node.js应用程序将使用winston-daily-rotate-file进行日志轮转。每天都会创建一个新的日志文件,并根据配置保留一定数量的旧日志文件。

0
看了该问题的人还看了