Node.js日志轮转策略怎么配置

455
2025/3/9 9:32:23
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Node.js中,可以使用第三方库winstonwinston-daily-rotate-file来实现日志轮转策略。以下是一个简单的配置示例:

  1. 首先,确保已经安装了winstonwinston-daily-rotate-file这两个库。如果没有,请使用以下命令进行安装:
npm install winston winston-daily-rotate-file
  1. 接下来,在你的Node.js项目中创建一个日志配置文件(例如:logger.js),并添加以下内容:
const winston = require('winston');
const { format } = winston;
const DailyRotateFile = require('winston-daily-rotate-file');

// 日志级别
const level = 'info';

// 日志格式
const logFormat = format.combine(
  format.timestamp({
    format: 'YYYY-MM-DD HH:mm:ss'
  }),
  format.printf(({ timestamp, level, message }) => {
    return `${timestamp} [${level.toUpperCase()}]: ${message}`;
  })
);

// 创建一个winston日志实例
const logger = winston.createLogger({
  level,
  format: logFormat,
  transports: [
    new DailyRotateFile({
      filename: 'logs/application-%DATE%.log', // 日志文件名模板
      datePattern: 'YYYY-MM-DD', // 按天轮转
      zippedArchive: true, // 是否压缩旧日志文件
      maxSize: '20m', // 单个日志文件最大值
      maxFiles: '14d' // 保留日志文件天数
    })
  ]
});

module.exports = logger;
  1. 在你的主要应用文件(例如:app.js)中引入并使用这个日志配置:
const logger = require('./logger');

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

现在,你的Node.js应用程序将使用winston-daily-rotate-file库来实现日志轮转策略。每天会生成一个新的日志文件,并且会自动压缩和删除旧的日志文件。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: datax在linux安全怎么保证