@atton16/logger
Version:
A pre-configured winston logger for web services.
42 lines • 1.52 kB
JavaScript
;
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