Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

يعد التسجيل أداة مهمة لتصحيح الأخطاء ومراقبتها. تمنحك وظائف السحابة خيار استخدام SDK المسجل أو تسجيل Google Cloud المخصص أو معيار كائن 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/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() لها مستوى سجل ERROR .
  • أوامر logger.error() لها مستوى سجل ERROR .
  • رسائل النظام الداخلية لها مستوى سجل DEBUG .

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

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

يتم دعم سجلات وظائف السحابة مع SDK المسجل بواسطة Cloud Logging . يمكنك استخدام مكتبة Cloud Logging لـ Node.js لتسجيل الأحداث باستخدام البيانات المنظمة ، مما يتيح سهولة التحليل والمراقبة.

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 . يمكنك بدلاً من ذلك استخدام استدعاءات تسجيل JavaScript القياسية مثل console.log و console.error ، ولكن عليك أولاً أن تطلب وحدة خاصة لتصحيح الطرق القياسية لتعمل بشكل صحيح:

require("firebase-functions/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() على مستوى سجل ERROR .
  • رسائل النظام الداخلية لها مستوى سجل DEBUG .

عرض السجلات

يمكن عرض سجلات وظائف السحابة إما في Google Cloud Console أو Cloud Logging UI أو عبر أداة سطر أوامر firebase .

استخدام Firebase CLI

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

firebase functions:log

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

firebase functions:log --only <FUNCTION_NAME>

للحصول على النطاق الكامل لخيارات عرض السجل ، اعرض التعليمات الخاصة functions:log :

firebase help functions:log

باستخدام Google Cloud Console

يمكنك عرض سجلات الوظائف في Google Cloud Console .

استخدام واجهة مستخدم 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 .

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

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

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