UNPKG

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
"use strict"; 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;