UNPKG

@swizzyweb/swizzy-web-service

Version:

Web service framework for swizzy dyn serve

22 lines (21 loc) 796 B
/** * Middleware to log request amd response information. */ export function RequestLoggerMiddleware(props) { let { logger } = props; if (!logger) { console.warn(`WARN!!!!: Logger not provided for RequestLoggerMiddleware, middleware will be a no-op, this will only display once per usage...`); return function (req, res, next) { next(); }; } return function (req, res, next) { const requestId = req.requestId ?? crypto.randomUUID(); res.on("finish", () => { logger.info(`[res-${requestId}]: ${req.method} ${req.originalUrl} ${req.ip} ${res.statusCode}`); }); logger.info(`[req-${requestId}]: ${req.method} ${req.originalUrl} ${req.ip}`); req.requestId = requestId; next(); }; }