如何获得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) }
怎样才能做到这一点?
谢谢
作为一个修补程序..
// 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');
如果有什么更好的让我知道。 谢谢。