// Replace with your actual logging service endpointconst loggingEndpoint = 'https://your-logging-endpoint'; export default { async fetch(request) { try { // Attempt to fetch the request from the origin server const response = await fetch(request.clone()); // Check if the response status indicates an error (for example, 4xx or 5xx) if (!response.ok) { // Prepare error details and context for logging const errorDetails = { status: response.status, statusText: response.statusText, url: request.url, method: request.method, headers: Object.fromEntries(request.headers), }; // Log error details to your logging service await logError(errorDetails); // Return the original response with status and statusText intact return new Response(response.body, { status: response.status, statusText: response.statusText, headers: response.headers, }); } // Return the successful response from the origin server return response; } catch (error) { // Handle any exceptions that occur during fetch const errorDetails = { message: error.message, stack: error.stack, url: request.url, method: request.method, headers: Object.fromEntries(request.headers), }; // Log error details to your logging service await logError(errorDetails); // Return a generic error response return new Response('Internal Server Error', { status: 500 }); } },}; // Function to log error details to your logging serviceasync function logError(details) { try { const response = await fetch(loggingEndpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(details), }); if (!response.ok) { console.error('Failed to log error:', response.statusText); } } catch (error) { console.error('Error logging error:', error.message); }}