温馨提示×

Node.js日志中如何实现日志分割

小樊
36
2025-12-07 08:50:01
栏目: 编程语言

在Node.js中,可以使用第三方库winstonwinston-daily-rotate-file来实现日志分割。下面是一个简单的示例:

  1. 首先,确保你已经安装了Node.js。如果没有,请访问Node.js官网下载并安装。

  2. 打开终端或命令提示符,运行以下命令来安装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 logPath = './logs';

// 日志文件名格式
const logFileName = 'application-%DATE%.log';

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

// 创建一个winston日志记录器
const logger = winston.createLogger({
  level: logLevel,
  format: format.combine(
    format.timestamp(),
    format.printf(({ timestamp, level, message }) => {
      return `${timestamp} [${level.toUpperCase()}]: ${message}`;
    })
  ),
  transports: [
    new DailyRotateFile({
      filename: logPath + '/' + logFileName,
      datePattern: 'YYYY-MM-DD',
      zippedArchive: true,
      maxSize: '20m',
      maxFiles: '14d'
    })
  ]
});

module.exports = logger;

在这个示例中,我们创建了一个名为logger的winston日志记录器,并配置了日志级别、日志格式和日志文件路径。我们还使用了winston-daily-rotate-file库来实现日志分割,每天生成一个新的日志文件,并将旧日志文件压缩保存。

  1. 在你的Node.js应用程序中使用logger记录日志。例如,在app.js文件中添加以下代码:
const logger = require('./logger');

logger.info('Hello, World!');
logger.error('An error occurred');
  1. 运行你的Node.js应用程序,日志将被记录到logs文件夹中的相应日志文件中,并根据配置进行分割。

这个示例仅作为起点,你可以根据自己的需求调整日志级别、日志格式、日志文件路径等配置。更多关于winstonwinston-daily-rotate-file的信息,请参考官方文档:

0