Debugging logs
Send debugging information in an errored response to a logging service.
// 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);  }}Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark