Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何减少在winston daily file transport中登录的大型对象上的内存使用?_Node.js_Amazon Web Services_Memory Leaks_Amazon Ec2_Winston - Fatal编程技术网

Node.js 如何减少在winston daily file transport中登录的大型对象上的内存使用?

Node.js 如何减少在winston daily file transport中登录的大型对象上的内存使用?,node.js,amazon-web-services,memory-leaks,amazon-ec2,winston,Node.js,Amazon Web Services,Memory Leaks,Amazon Ec2,Winston,我已将winston配置为使用自定义log.js文件登录两个不同的文件,以便在不同的模块中每小时轮换日志 Log.js 我使用这个日志文件在server.js中使用这个.Sample来存储来自不同文件的日志 Server.js 一小时后,从顶部显示的内存使用情况显示EC2消耗了超过3gb的ram(大部分显示为缓存),这增加了整个应用程序的延迟 如果我删除winston,我的应用程序工作正常,总内存总是在1.4到1.5 gb左右 有没有办法扭转这种局面 我的日志文件大约每小时2Gb,我使用gzip

我已将winston配置为使用自定义log.js文件登录两个不同的文件,以便在不同的模块中每小时轮换日志

Log.js 我使用这个日志文件在server.js中使用这个.Sample来存储来自不同文件的日志

Server.js 一小时后,从顶部显示的内存使用情况显示EC2消耗了超过3gb的ram(大部分显示为缓存),这增加了整个应用程序的延迟

如果我删除winston,我的应用程序工作正常,总内存总是在1.4到1.5 gb左右

有没有办法扭转这种局面

我的日志文件大约每小时2Gb,我使用gzip压缩文件,然后使用aws cli将其发送到s3

var winston = require('winston');
// setup winston for request log
winston.loggers.add('request', {
    transports: [
      // Setup your shared transports here for request log

      new (winston.transports.DailyRotateFile)({ 
        name: '/var/log/nodejs/request.log',
        level:'info',
        filename : '/var/log/nodejs/request.log' ,
        datePattern: '.yyyy-MM-dd-HH'
      }),
    ]
  });

// setup winston for response log
winston.loggers.add('response', {
    transports: [
      // Setup your shared transports here for bids log

      new (winston.transports.DailyRotateFile)({ 
        name:'/var/log/nodejs/response.log',
        level:'info',
        filename :  '/var/log/nodejs/response.log' ,
       datePattern: '.yyyy-MM-dd-HH'})
    ]
  });

winston.remove(winston.transports.Console);
// to provide the each category across the module ;
 module.exports.requestlog = winston.loggers.get('request');
 module.exports.responselog = winston.loggers.get('response');
var requestlog = require('./log.js').requestlog;

var requestObject = {}// large json object with more that 60 key and value  
request.info('request',requestObject);