powr-sdk-api
Version:
Shared API core library for PowrStack projects
45 lines (41 loc) • 1.11 kB
JavaScript
;
/**
* 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;