debian

如何设置Node.js日志的滚动策略

小樊
42
2025-08-11 12:47:55
栏目: 编程语言

在Node.js中,可以使用winston库来实现日志的滚动策略。winston是一个流行的日志库,提供了丰富的功能,包括日志级别、格式化和传输等。要设置日志的滚动策略,你需要安装winston-daily-rotate-file模块,它是winston的一个扩展,用于实现日志文件的每日滚动。

首先,使用npm安装winstonwinston-daily-rotate-file

npm install winston winston-daily-rotate-file

然后,在你的Node.js应用程序中设置日志滚动策略:

const winston = require('winston');
const { createLogger, format, transports } = winston;
const DailyRotateFile = require('winston-daily-rotate-file');

// 创建一个自定义的日志格式
const myFormat = format.combine(
  format.timestamp({
    format: 'YYYY-MM-DD HH:mm:ss'
  }),
  format.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日志记录器实例
const logger = createLogger({
  level: 'info', // 日志级别
  format: myFormat,
  transports: [
    transport
  ]
});

// 使用日志记录器
logger.info('Hello, world!');

在这个示例中,我们创建了一个DailyRotateFile传输,设置了日志文件名模板、滚动日期格式、压缩滚动日志文件、单个日志文件的最大尺寸和保留最近14天的日志文件。你可以根据自己的需求调整这些设置。

现在,当你运行你的Node.js应用程序时,日志将按照设置的滚动策略进行滚动。

0
看了该问题的人还看了