溫馨提示×

Node.js日志輪轉機制如何配置

小樊
46
2025-03-27 10:33:21
欄目: 編程語言

在 Node.js 應用程序中,可以使用第三方庫 winstonmorgan 配置日志輪轉。這里以 winston 為例,介紹如何配置日志輪轉。

首先,確保已經安裝了 winstonwinston-daily-rotate-file 這兩個庫:

npm install winston winston-daily-rotate-file

接下來,創建一個名為 logger.js 的文件,并添加以下內容:

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

const transport = new DailyRotateFile({
  filename: 'logs/application-%DATE%.log', // 日志文件名格式
  datePattern: 'YYYY-MM-DD', // 日志輪轉日期格式
  zippedArchive: true, // 是否壓縮輪轉后的日志文件
  maxSize: '20m', // 單個日志文件最大尺寸
  maxFiles: '14d' // 保留日志文件的天數
});

const logger = winston.createLogger({
  level: 'info', // 日志級別
  format: format.combine(
    format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), // 時間戳格式
    format.errors({ stack: true }), // 錯誤堆棧信息
    format.splat(), // 其他日志信息
    format.json() // 日志格式為 JSON
  ),
  transports: [
    transport
  ]
});

module.exports = logger;

現在,可以在應用程序中使用 logger.js 文件中導出的 logger 對象記錄日志:

const logger = require('./logger');

logger.info('Hello, world!');
logger.error('An error occurred');

這樣配置后,日志文件將每天輪轉一次,并保留最近 14 天的日志文件。每個日志文件的最大尺寸為 20MB。當文件達到最大尺寸時,將自動創建一個新的日志文件。

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