diff --git a/lib/connect-logger.js b/lib/connect-logger.js index a7c255f..ed6c313 100755 --- a/lib/connect-logger.js +++ b/lib/connect-logger.js @@ -273,7 +273,12 @@ module.exports = function getLogger(logger4js, options) { }; // hook on end request to emit the log entry of the HTTP request. - res.on("finish", () => { + let finished = false; + const handler = () => { + if (finished) { + return; + } + finished = true; res.responseTime = new Date() - start; // status code response level handling if (res.statusCode && options.level === "auto") { @@ -293,7 +298,11 @@ module.exports = function getLogger(logger4js, options) { thisLogger.log(level, format(fmt, combinedTokens)); } if (options.context) thisLogger.removeContext("res"); - }); + }; + res.on("end", handler); + res.on("finish", handler); + res.on("error", handler); + res.on("close", handler); } // ensure next gets always called