2017-11-02 8 views
0

複数のファイルのレベル変更を反映して、winstonのログレベルを動的に変更するにはどうすればよいですか?winstonのログレベルを動的に変更する

私は2つのjsファイルを持っており、両方のファイルにロガーを含めています。私はindex.jsにロガーのレベルを変更すると、変更はここでreadfile.js

に反映されていない私のコードです:

winston_logger.js

var winston = require('winston'); 
var logger; 
module.exports.init = function (logLevel) { 
     logger = new(winston.Logger)({ 
     transports: [ 
      new(winston.transports.Console)({ 
       level: logLevel 
      }) 
     ], 
     exitOnError: false 
    }); 
} 

module.exports.getLogger = function (config) { 
    if (!module.exports.logger) { 
     exports.init('info') 
    } 
    return logger; 
} 

module.exports.debugLevel = function(){ 
    logger.transports.console.level = 'debug' 
} 

インデックス。 JS

var readFile = require('./readFile') 
var winston = require('./winston_logger') 
var log = winston.getLogger() 
log.info("info message"); 

/*Here Im changing the log level as debug*/ 
winston.debugLevel(); 

setTimeout(function(){ 
    readFile(function(){}) 
}, 5000) 

readfile.js

var readFile = require('./readFile') 
var winston = require('./winston_logger') 
var log = winston.getLogger() 
log.info("info message"); 

/*Here Im changing the log level as debug*/ 
winston.debugLevel(); 

setTimeout(function(){ 
    readFile(function(){}) 
}, 5000) 

この問題を重複する問題としてマークしないでください。 These答えが私に役立っていません。 readfile.jsで

答えて

0

あなたはindex.js

+0

こんにちはガブリエル、私はそれをしましたが、動作していません – Deva

+0

ありがとうガブリエル:) – Deva

0

winston_logger.js

var winston = require('winston'); 
    winston.configure({ 
     transports: [ 
      new (winston.transports.Console)({ timestamp: true, json : false , colorize: true}), 
      new (winston.transports.File)({filename: './somefile.log' , json : true, timestamp: true }) 
     ] 
    }); 

module.exports = winston; 

私はどこからログレベルを変更することができ、それをインポートするのと同じ方法winston_loggerインポートします。 ありがとう

関連する問題