溫馨提示×

Node.js日志分割與歸檔方法

小樊
59
2025-06-09 23:48:24
欄目: 編程語言

在Node.js中,日志分割和歸檔通常是通過使用第三方庫或者自定義代碼來實現的。以下是一些建議的方法:

  1. 使用winston-daily-rotate-file庫:

winston-daily-rotate-file是一個基于winston的日志庫,它可以實現日志的每日分割和歸檔。首先,你需要安裝這個庫:

npm install winston-daily-rotate-file

然后,在你的代碼中使用它:

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

const transport = new DailyRotateFile({
  filename: 'application-%DATE%.log',
  datePattern: 'YYYY-MM-DD-HH',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
});

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    transport
  ]
});

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

在這個例子中,日志文件將按照日期進行分割,并且每個文件的最大大小為20MB。同時,保留最近14天的日志文件,并對舊的日志文件進行壓縮歸檔。

  1. 使用pino庫:

pino是一個高性能的日志庫,它支持日志的分割和歸檔。首先,你需要安裝這個庫:

npm install pino pino-pretty pino-daily-rotate-file

然后,在你的代碼中使用它:

const pino = require('pino');
const pinoPretty = require('pino-pretty');
const pinoDailyRotateFile = require('pino-daily-rotate-file');

const logger = pino({
  level: 'info'
}, pinoDailyRotateFile({
  period: '1d',
  dir: 'logs',
  prefix: 'application'
}));

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

// 如果你想在控制臺輸出格式化的日志,可以使用 pino-pretty
pinoPretty({ colorize: true }).pipe(process.stdout);

在這個例子中,日志文件將按照日期進行分割,并存儲在logs目錄下。每個日志文件的前綴為application。

這些方法可以幫助你實現Node.js應用程序的日志分割和歸檔。你可以根據自己的需求進行調整。

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