@acadix/setup
Version:
Acadix Learning Management System backend application project setup
47 lines • 1.35 kB
JavaScript
;
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