@hacksaw/hono-google-cloud-logging
Version:
Google Cloud Logging Middleware for Hono
26 lines (25 loc) • 1.2 kB
JavaScript
export function logDevRequest(method, path, status, duration, requestBody, responseBody, requestHeaders, responseHeaders, logRequestBody = false, logResponseBody = false, debugMode = false) {
const timestamp = new Date().toISOString();
const statusColor = status >= 500
? "\x1b[31m" // Red for 5xx
: status >= 400
? "\x1b[33m" // Yellow for 4xx
: status >= 300
? "\x1b[36m" // Cyan for 3xx
: "\x1b[32m"; // Green for 2xx/1xx
const resetColor = "\x1b[0m";
console.log("Skipping Write to Google Cloud Logging in Dev Mode");
console.log(`[${timestamp}] ${method} ${path} ${statusColor}${status}${resetColor} ${duration}ms`);
// Log request details in dev mode
if (logRequestBody && requestBody) {
console.log(`Request Body: ${requestBody}`);
}
if (logResponseBody && responseBody) {
console.log(`Response Body: ${responseBody}`);
}
// Log additional details at debug level
if (debugMode) {
console.log(`Request Headers: ${JSON.stringify(requestHeaders, null, 2)}`);
console.log(`Response Headers: ${JSON.stringify(responseHeaders, null, 2)}`);
}
}