From 2603c975c6d95731b9460dceede224faaa46d8bd Mon Sep 17 00:00:00 2001 From: Lam Wei Li Date: Thu, 27 Jan 2022 23:57:19 +0800 Subject: [PATCH] fix: connectLogger not logging on close --- lib/connect-logger.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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