گزارش خطاها

گزارش خودکار خطاها

You can emit an error from a function to Error Reporting as shown below:

نود جی اس

// These WILL be reported to Error Reporting
throw new Error('I failed you'); // Will cause a cold start if not caught

پایتون

@functions_framework.http
def hello_error_1(request):
    # This WILL be reported to Error Reporting,
    # and WILL NOT show up in logs or
    # terminate the function.
    from google.cloud import error_reporting

    client = error_reporting.Client()

    try:
        raise RuntimeError("I failed you")
    except RuntimeError:
        client.report_exception()

    # This WILL be reported to Error Reporting,
    # and WILL terminate the function
    raise RuntimeError("I failed you")

@functions_framework.http
def hello_error_2(request):
    # These errors WILL NOT be reported to Error
    # Reporting, but will show up in logs.
    import logging
    import sys

    print(RuntimeError("I failed you (print to stdout)"))
    logging.warning(RuntimeError("I failed you (logging.warning)"))
    logging.error(RuntimeError("I failed you (logging.error)"))
    sys.stderr.write("I failed you (sys.stderr.write)\n")

    # This is considered a successful execution and WILL NOT be reported
    # to Error Reporting, but the status code (500) WILL be logged.
    from flask import abort

    return abort(500)

If you would like more fine-grained error reporting, you can use the Error Reporting client libraries .

شما می‌توانید خطاهای گزارش‌شده را در بخش گزارش خطا در کنسول گوگل کلود مشاهده کنید. همچنین می‌توانید خطاهای گزارش‌شده از یک تابع خاص را هنگام انتخاب آن از لیست توابع در کنسول گوگل کلود مشاهده کنید.

استثناهای کنترل نشده‌ای که توسط تابع شما تولید می‌شوند، در گزارش خطا ظاهر می‌شوند. توجه داشته باشید که برخی از انواع استثناهای کنترل نشده (مانند آنهایی که به صورت ناهمگام ارسال می‌شوند) باعث می‌شوند که هنگام فراخوانی تابع در آینده، یک شروع سرد رخ دهد. این امر مدت زمان اجرای تابع شما را افزایش می‌دهد.

گزارش دستی خطاها

وارد کردن وابستگی‌ها

To report an error to Error Reporting from a function, import the error function from the Cloud Functions logger SDK:

// All available logging functions
const {
  log,
  info,
  debug,
  warn,
  error,
  write,
} = require("firebase-functions/logger");

ارسال به Cloud Logging

The error function from the Cloud Functions logger SDK will report errors to both Cloud Logging and Error Reporting . To include more context from the error as structured data , pass an error object as the second argument:

 } catch (err) {
  // Attach an error object as the second argument
  error("Unable to read quote from Firestore, sending default instead",
      err);