UNPKG

powr-sdk-api

Version:

Shared API core library for PowrStack projects

45 lines (41 loc) 1.11 kB
"use strict"; /** * Logging middleware for Express applications */ const logger = (req, res, next) => { const startTime = Date.now(); // Log request with redacted sensitive information try { const logBody = { ...req.body }; if (logBody.password) logBody.password = "[REDACTED]"; if (logBody.token) logBody.token = "[REDACTED]"; console.log('Request:', { timestamp: new Date().toISOString(), method: req.method, url: req.originalUrl, ip: req.ip, userAgent: req.get('user-agent'), body: logBody, query: req.query }); } catch (error) { console.error("Error logging request:", error); } // Log response with timing information res.on('finish', () => { const responseTime = Date.now() - startTime; console.log('Response:', { timestamp: new Date().toISOString(), method: req.method, url: req.originalUrl, statusCode: res.statusCode, responseTime: `${responseTime}ms`, userAgent: req.get('user-agent'), ip: req.ip }); }); next(); }; module.exports = logger;