logaro
Version:
Structured logging middleware for Express. Tracks request timing, IP, status, method, and endpoint. Supports colorized console and JSON log files.
38 lines (37 loc) • 1.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.requestLogger = void 0;
const logger_1 = __importDefault(require("./logger"));
const requestLogger = () => {
return (req, res, next) => {
const start = process.hrtime();
res.on("finish", () => {
const end = process.hrtime(start);
const durationMs = (end[0] * 1000 + end[1] / 1000000).toFixed(2);
const status = res.statusCode;
const success = status >= 200 && status < 400;
const logData = {
method: req.method,
endpoint: req.originalUrl,
ip: req.ip || req.connection.remoteAddress,
status: status,
success: success,
durationMs: durationMs,
};
if (status >= 500) {
logger_1.default.error("Server Error Occurred", logData);
}
else if (status >= 400) {
logger_1.default.warn("Client Request Failed", logData);
}
else {
logger_1.default.info("Request Completed Successfully", logData);
}
});
next();
};
};
exports.requestLogger = requestLogger;