adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
32 lines • 1.12 kB
JavaScript
import { logger } from '../../config/logger.js';
export const requestLogger = (req, res, next) => {
const start = Date.now();
// Generate request ID
const requestId = req.headers['x-request-id'] || `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
req.headers['x-request-id'] = requestId;
// Log incoming request
logger.info('Incoming request', {
requestId,
method: req.method,
url: req.url,
ip: req.ip,
userAgent: req.get('User-Agent'),
timestamp: new Date().toISOString()
});
// Override response.end to log response
const originalEnd = res.end.bind(res);
res.end = function (chunk, encoding, cb) {
const duration = Date.now() - start;
logger.info('Response sent', {
requestId,
method: req.method,
url: req.url,
statusCode: res.statusCode,
duration: `${duration}ms`,
timestamp: new Date().toISOString()
});
return originalEnd(chunk, encoding, cb);
};
next();
};
//# sourceMappingURL=requestLogger.js.map