anything-llm/server/middleware/httpLogger.js

24 lines
763 B
JavaScript

const httpLogger =
({ enableTimestamps = false }) =>
(req, res, next) => {
// Capture the original res.end to log response status
const originalEnd = res.end;
res.end = function (chunk, encoding) {
// Log the request method, status code, and path
const statusColor = res.statusCode >= 400 ? "\x1b[31m" : "\x1b[32m"; // Red for errors, green for success
console.log(
`\x1b[32m[HTTP]\x1b[0m ${statusColor}${res.statusCode}\x1b[0m ${req.method} -> ${req.path} ${enableTimestamps ? `@ ${new Date().toLocaleTimeString("en-US", { hour12: true })}` : ""}`.trim()
);
// Call the original end method
return originalEnd.call(this, chunk, encoding);
};
next();
};
module.exports = {
httpLogger,
};