首页主机资讯Node.js日志如何实现日志轮转

Node.js日志如何实现日志轮转

时间2025-10-21 00:37:04发布访客分类主机资讯浏览1298
导读:在Node.js中,可以使用第三方库winston和winston-daily-rotate-file来实现日志轮转。下面是一个简单的示例: 首先,确保你已经安装了winston和winston-daily-rotate-file这两个库...

在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.errors({
 stack: true }
    ),
  format.splat(),
  format.json()
);


// 日志传输
const transport = new DailyRotateFile({

  filename: 'logs/application-%DATE%.log', // 日志文件名
  datePattern: 'YYYY-MM-DD', // 按天轮转
  zippedArchive: true, // 是否压缩旧日志文件
  maxSize: '20m', // 单个日志文件最大值
  maxFiles: '14d' // 保留最近14天的日志文件
}
    );


// 创建winston实例
const logger = winston.createLogger({

  level: 'info',
  format: myFormat,
  transports: [
    transport
  ]
}
    );
    

module.exports = logger;
    
  1. 现在,你可以在其他Node.js文件中使用这个logger实例来记录日志。例如,在app.js中:
const logger = require('./logger');
    

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

这样,你的应用程序就会在每天生成一个新的日志文件,并在达到指定大小时自动轮转。同时,旧日志文件会被压缩并保留一段时间(在这个例子中是14天)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js日志如何实现日志轮转
本文地址: https://pptw.com/jishu/730682.html
Debian上Node.js日志权限如何设置 Debian Node.js日志配置文件在哪

游客 回复需填写必要信息