diff --git a/lib/winston/transports/transport.js b/lib/winston/transports/transport.js index 93184aff7..d279d008c 100644 --- a/lib/winston/transports/transport.js +++ b/lib/winston/transports/transport.js @@ -113,19 +113,23 @@ Transport.prototype.formatResults = function (results, options) { // all logging has completed. // Transport.prototype.logException = function (msg, meta, callback) { - var self = this; + var self = this, + called; - function onLogged () { - self.removeListener('error', onError); - callback(); + if (this.silent) { + return callback(); } - function onError () { - self.removeListener('logged', onLogged); - callback(); + function onComplete () { + if (!called) { + called = true; + self.removeListener('logged', onComplete); + self.removeListener('error', onComplete); + callback(); + } } - this.once('logged', onLogged); - this.once('error', onError); + this.once('logged', onComplete); + this.once('error', onComplete); this.log(self.exceptionsLevel, msg, meta, function () { }); };