如何动态更改winston中的日志级别,反映多个文件中的级别更改?
我有两个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'
}
Index.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答案对我没有帮助。
答案 0 :(得分:0)
在readfile.js中导入winston_logger的方式与在index.js中导入它的方式相同
答案 1 :(得分: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;
我可以从任何地方更改日志级别。 感谢