"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.errorLogger = exports.requestLogger = void 0; // Generate a simple request ID const generateRequestId = () => { return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; }; // Request logger middleware const requestLogger = (req, res, next) => { const requestId = generateRequestId(); // Attach request ID to request object req.requestId = requestId; const startTime = Date.now(); // Log request const logContext = { requestId, method: req.method, url: req.originalUrl, ip: req.ip || 'unknown', userAgent: req.get('user-agent'), userId: req.user?.id }; console.log(`[${new Date().toISOString()}] REQUEST:`, JSON.stringify(logContext)); // Log response const originalSend = res.send; res.send = function (data) { const duration = Date.now() - startTime; console.log(`[${new Date().toISOString()}] RESPONSE:`, JSON.stringify({ requestId, statusCode: res.statusCode, duration: `${duration}ms` })); return originalSend.call(this, data); }; next(); }; exports.requestLogger = requestLogger; // Error logger (to be used before error handler) const errorLogger = (err, req, res, next) => { const requestId = req.requestId || 'unknown'; console.error(`[${new Date().toISOString()}] ERROR:`, JSON.stringify({ requestId, error: { name: err.name, message: err.message, stack: err.stack }, request: { method: req.method, url: req.originalUrl, headers: req.headers, body: req.body } })); next(err); }; exports.errorLogger = errorLogger; //# sourceMappingURL=logger.js.map