溫馨提示×

Node.js日志輪轉策略怎么設置

小樊
46
2025-07-12 09:35:36
欄目: 編程語言

在Node.js中,可以使用第三方庫winstonwinston-daily-rotate-file來實現日志輪轉策略。以下是一個簡單的示例:

  1. 首先,確保已經安裝了winstonwinston-daily-rotate-file庫。如果沒有,請使用以下命令安裝:
npm install winston winston-daily-rotate-file
  1. 創建一個名為logger.js的文件,并在其中設置日志輪轉策略:
const winston = require('winston');
const { format } = 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 logDir = './logs';

// 創建一個名為'combined.log'的日志文件,并設置輪轉策略
const transport = new DailyRotateFile({
  filename: `${logDir}/combined.log`,
  datePattern: 'YYYY-MM-DD',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
});

// 創建一個winston日志實例
const logger = winston.createLogger({
  level: 'info',
  format: myFormat,
  transports: [
    transport
  ]
});

module.exports = logger;

在這個示例中,我們設置了以下輪轉策略:

  • filename: 日志文件的名稱和存儲路徑。
  • datePattern: 每日日志文件的日期格式。
  • zippedArchive: 是否將舊的日志文件壓縮存檔。
  • maxSize: 單個日志文件的最大大小,超過這個大小將創建一個新的日志文件。
  • maxFiles: 保留日志文件的最大天數。
  1. 在你的Node.js應用程序中使用logger.js
const logger = require('./logger');

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

現在,你的Node.js應用程序將按照設置的輪轉策略記錄日志。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女