UNPKG

@acadix/setup

Version:

Acadix Learning Management System backend application project setup

47 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("./logger"); /** * API Request Logger */ class LoggerMiddleware { /** * * @param serviceName */ constructor(env) { this.env = env; // eslint-disable-line @typescript-eslint/no-explicit-any this.env = env; this.logger = (0, logger_1.logger)(this.env); } logRequest(req) { this.logger.info(`Called: ${req.path}`); } logResponse(req, res) { const { statusCode, statusMessage } = res; const { method, originalUrl } = req; const logMessage = `[${method}] ${originalUrl}: ${statusCode} ${statusMessage}`; if (statusCode >= 400 && statusCode < 500) { this.logger.warn(logMessage); } else if (statusCode >= 500) { this.logger.error(logMessage); } else { this.logger.info(logMessage); } } onFinished(req, res) { this.logResponse(req, res); } getMiddleware() { return (req, res, next) => { this.logRequest(req); res.on("finish", () => this.onFinished(req, res)); next(); }; } } exports.default = LoggerMiddleware; //# sourceMappingURL=log.js.map