Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

كتابة وعرض السجلات

يعد التسجيل أداة مهمة لتصحيح الأخطاء ومراقبتها. وظائف سحابة يعطيك خيار استخدام SDK لها ومسجل، والعرف جوجل سحابة التسجيل، أو console مستوى الكائن لتطوير لشبكة الإنترنت.

كتابة السجلات

في حين أن سحابة وظائف مسجل ينصح SDK لمعظم الحالات، يمكنك اختيار واحد من الخيارات الأخرى للأسباب التالية:

  • لديك قاعدة التعليمات البرمجية الموجودة وتفضل عدم ريفاكتور من console.log .
  • أنت معتاد على Cloud Logging (تسجيل StackDriver سابقًا) وتفضل استخدامه للتسجيل المخصص.

استخدام SDK مسجل وظائف السحابة

وظائف السحب المسجل SDK يوفر واجهة القياسية التي لديها واجهة برمجة تطبيقات مشابهة ل console.log البيانات وتدعم مستويات السجل الأخرى. يمكنك استخدام هذا SDK لتسجيل الأحداث مع البيانات المهيكلة ، مما يسهل التحليل والرصد.

يدعم المسجل SDK إدخالات السجل كجزء من استيراد حرف البدل. على سبيل المثال:

  const functions = require("firebase-functions");

  functions.logger.log("Hello from info. Here's an object:", someObj);

بدلاً من ذلك ، يمكنك استخدام عمليات التصدير الفردية. يوضح هذا المثال البيانات المنظمة المرفقة بالسجل باعتبارها الوسيطة الأخيرة:

const { warn } = require("firebase-functions/lib/logger");


// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
  key1: 'val1',
  key2: 'val2'
});
  • logger.log() أوامر لديها مستوى سجل INFO.
  • logger.info() أوامر لديها مستوى سجل INFO.
  • logger.warn() أوامر لديها مستوى السجل خطأ.
  • logger.error() أوامر لديها مستوى السجل خطأ.
  • رسائل النظام الداخلي لديها مستوى السجل DEBUG.

مع logger.write() ، يمكنك كتابة إدخالات سجل مستويات الخطورة سجل إضافة CRITICAL ، ALERT ، و EMERGENCY . انظر LogSeverity .

سجلات التسجيل السحابية المخصصة

وتدعم سحابة وظائف السجلات مع SDK مسجل من قبل سحابة تسجيل . يمكنك استخدام مكتبة تسجيل الغيمة لنود.جي إس لتسجيل الأحداث مع البيانات المهيكلة، مما يسهل التحليل والرصد.

const { Logging } = require('@google-cloud/logging');

// ...

// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');

// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
  resource: {
    type: 'cloud_function',
    labels: {
      function_name: 'CustomMetrics',
      region: 'us-central1'
    }
  }
};

// ...

// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
  event: 'my-event',
  value: 'foo-bar-baz',

  // Optional 'message' property will show up in the Firebase
  // console and other human-readable logging surfaces
  message: 'my-event: foo-bar-baz'
};

// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);

باستخدام console.log

الحل الموصى بها للتسجيل من وظيفة هو استخدام SDK مسجل . بدلا من ذلك يمكنك استخدام تسجيل جافا سكريبت القياسية يدعو مثل console.log و console.error ، ولكن عليك أولا أن تتطلب وحدة خاصة لرأب الصدع الطرق المعيارية للعمل بشكل صحيح:

require("firebase-functions/lib/logger/compat");

وبمجرد الانتهاء من اللازم وحدة التوافق مسجل، يمكنك استخدام console.log() أساليب كالمعتاد في التعليمات البرمجية:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • console.log() أوامر لديها مستوى سجل INFO.
  • console.info() أوامر لديها مستوى سجل INFO.
  • console.warn() أوامر لديها مستوى السجل خطأ.
  • console.error() أوامر لديها مستوى السجل خطأ.
  • رسائل النظام الداخلي لديها مستوى السجل DEBUG.

عرض السجلات

سجلات وظائف سحابة تشاهدها سواء في وحدة Firebase، سحابة UI تسجيل، أو عن طريق firebase أداة سطر الأوامر.

استخدام Firebase CLI

لعرض السجلات مع firebase أداة، استخدام functions:log الأوامر:

firebase functions:log

لعرض سجلات دالة معينة ، قم بتوفير اسم الوظيفة كوسيطة:

firebase functions:log --only <FUNCTION_NAME>

لمجموعة كاملة من الخيارات سجل عرض، عرض المساعدة ل functions:log :

firebase help functions:log

استخدام وحدة تحكم Firebase

يمكنك عرض سجلات عن وظائف السحب من وحدة التحكم Firebase.

استخدام واجهة مستخدم Cloud Logging

يمكنك عرض سجلات عن وظائف الغيمة في واجهة المستخدم تسجيل الغيمة.

جارٍ تحليل السجلات

يوفر Cloud Logging مجموعة قوية من أدوات تحليل السجلات التي يمكنك استخدامها لمراقبة وظائف السحابة الخاصة بك. هذه الأدوات هي قوية وخصوصا عندما يقترن التسجيل المخصصة .

المقاييس المستندة إلى السجلات

في واجهة المستخدم تسجيل الغيمة، استخدم الحقل مرشح متقدم لتضييق نطاق السجل إلى الوظيفة التي تريد تحليلها، ثم انقر فوق إرسال تصفية لتصفية السجلات. على سبيل المثال ، يمكنك تحليل السجلات من وظيفة واحدة فقط:

resource.type="cloud_function"
resource.labels.function_name="myCloudFunction"
resource.labels.region="us-central1"

إذا قمت بتسجيل الأحداث بحمولات JSON المخصصة ، فيمكنك التصفية باستخدام المفاتيح والقيم التي قدمتها:

resource.type="cloud_function"
resource.labels.function_name="CustomMetrics"
jsonPayload.event="my-event"

وبمجرد الانتهاء من تصفية السجلات، يمكنك تحليلها باستخدام مقاييس أساس السجلات، . انقر على زر متري لفتح محرر متري وحدد نوع متري خلق:

  • مقاييس العداد: عد عدد إدخالات السجل التي تتطابق مع الفلتر. على سبيل المثال ، يمكنك حساب عدد المرات التي يقع فيها حدث معين.
  • مقاييس التوزيع: تتراكم البيانات الرقمية من إدخالات السجل التي تتطابق مع الفلتر. على سبيل المثال ، يمكنك تتبع فترات انتقال بعض العمليات داخل وظائفك.

لسجلات يستند إلى نص، مثل تلك الناجمة عن console.log() في مهامكم، يمكنك استخراج القيم وتسميات من textPayload الحقل باستخدام التعابير العادية. لسجلات مخصصة مع البيانات المهيكلة يمكنك الوصول مباشرة إلى البيانات في jsonPayload المجال.

الرسوم البيانية والتنبيهات

بمجرد إنشاء مقاييس قائمة على السجلات لمراقبة وظائفك ، يمكنك إنشاء مخططات وتنبيهات بناءً على هذه المقاييس. على سبيل المثال ، يمكنك إنشاء مخطط لتصور زمن الانتقال بمرور الوقت ، أو إنشاء تنبيه لإعلامك في حالة حدوث خطأ معين في كثير من الأحيان.

انظر إنشاء المخططات وتنبيهات للحصول على معلومات مفصلة حول كيفية استخدام المقاييس في المخططات والسياسات تنبيه السجلات المستندة.