UNPKG

@atton16/logger

Version:

A pre-configured winston logger for web services.

42 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.activityLogMiddleware = void 0; const logger_1 = require("./logger"); function activityLogMiddleware(req, res, next) { let reqBody = ''; req.on('data', function (chunk) { reqBody += chunk; }); req.on('end', function () { logger_1.logger.info(`${this.method} ${this.url}`); logger_1.logger.info(`req.body DUMP START`); logger_1.logger.info(reqBody); logger_1.logger.info(`req.body DUMP END`); }); const sendFn = res.send; let resBody; res.send = function (body) { resBody = body; return sendFn.call(this, body); }; res.on('finish', function () { const statusCode = this.statusCode; const skipBody = this.skipBody; const contentType = this.getHeaders()['content-type']; logger_1.logger.info(`res.statusCode: ${statusCode}`); if (!contentType || (statusCode < 300 && skipBody)) { logger_1.logger.info(`res.body DUMP SKIPPED!`); } else { if (contentType.includes('application/json')) { resBody = JSON.stringify(JSON.parse(resBody), null, 2); } logger_1.logger.info(`res.body DUMP START`); logger_1.logger.info(resBody); logger_1.logger.info(`res.body DUMP END`); } }); next(); } exports.activityLogMiddleware = activityLogMiddleware; //# sourceMappingURL=activityLog.middleware.js.map