如何获得winston自定义传输函数内的logging器名称?

我有两个logging器:

var category1 = winston.loggers.get('category1'); var category2 = winston.loggers.get('category2'); 

我需要得到他们的自定义名称(或默认)。

 CustomLogger.prototype.log = function (level, msg, meta, callback) { // i need logger name here! (category1 or category2 or undefined / default) } 

怎样才能做到这一点?

谢谢

       

网上收集的解决方案 "如何获得winston自定义传输函数内的logging器名称?"

作为一个修补程序..

 // fix to get logger name as metadata var originalGetLogger = winston.Container.prototype.get // winston.loggers.get(loggerName); winston.Container.prototype.get = function(loggerName,options){ var logger = originalGetLogger.call(winston.loggers,loggerName,options) logger.rewriters.push(function(level, msg, meta) { meta._l = loggerName; return meta; }); return logger; } 

即时覆盖得到FN添加重写器,与重写器即时通讯logging器名称添加到元数据。

 // now each log will insert LOGGERNAME to meta var loggerA = winston.loggers.get('LOGGERNAMEA'); var loggerB = winston.loggers.get('LOGGERNAMEB'); 

如果有什么更好的让我知道。 谢谢。