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


يُعد التسجيل أداة مهمة لتصحيح أخطاء الرمز ومراقبته. تتيح لك "دوال Cloud" خيار استخدام حزمة تطوير البرامج (SDK) للمسجّل أو تسجيل Google Cloud المخصّص أو معيار عنصر console للتطوير على الويب.

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

على الرغم من أنّه يُنصح باستخدام أداة تسجيل وظائف Cloud في معظم الحالات، قد تختار أحد الخيارات الأخرى للأسباب التالية:

  • لديك قاعدة رموز حالية وتفضل عدم إعادة البناء من console.log.
  • أنت على دراية بميزة تسجيل الدخول في السحابة الإلكترونية (المعروفة سابقًا باسم StackDriver) وتفضل استخدامها في التسجيل المخصَّص.

استخدام حزمة تطوير البرامج (SDK) لمسجِّل وظائف Cloud

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

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

سجلّات "التسجيل في السحابة الإلكترونية المخصّصة"

يتم الاحتفاظ بسجلّات دوال Cloud التي تتضمّن حزمة تطوير البرامج (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) للمسجِّل للنظام الأساسي الذي تستخدمه. وباستخدام Node.js، يمكنك بدلاً من ذلك استخدام استدعاءات تسجيل 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() على مستوى السجلّ ERROR.
  • تحتوي أوامر console.error() على مستوى السجلّ ERROR.
  • تكون رسائل النظام الداخلية على مستوى السجلّ تصحيح الأخطاء.

عرض السجلات

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

استخدام واجهة سطر الأوامر في Firebase

للاطّلاع على السجلّات باستخدام أداة 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 في واجهة مستخدم تسجيل الدخول إلى السحابة الإلكترونية.

تحليل السجلات

تقدّم ميزة "تسجيل الدخول في السحابة الإلكترونية" حزمة فعالة من أدوات تحليل السجلات التي يمكنك استخدامها لمراقبة دوال السحابة.

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

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

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