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


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

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

في حين أنّ أداة تسجيل وظائف السحابة الإلكترونية يُنصح باستخدام حزمة SDK في معظم الحالات يمكنك تحديد أحد الخيارات الأخرى لهذه الأسباب:

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

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

توفِّر حزمة تطوير البرامج (SDK) لمسجّلي Cloud Functions واجهة عادية تحتوي على واجهة برمجة تطبيقات مشابهة لعبارات console.log وتتوافق مع مستويات السجل الأخرى. يمكنك استخدام حزمة تطوير البرامج (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 يمكنك الاطّلاع على مستوى خطورة السجلّ.

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

سجلّات Cloud Functions مع حزمة تطوير البرامج (SDK) الخاصة بالمسجّل تسجيل السحابة الإلكترونية يمكنك استخدام مكتبة تسجيل الدخول في السحابة الإلكترونية لنظام 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 واجهة مستخدم التسجيل في السحابة الإلكترونية أو من خلال أداة سطر الأوامر firebase

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

للاطّلاع على السجلّات باستخدام أداة firebase، استخدِم الأمر functions:log:

firebase functions:log

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

firebase functions:log --only <FUNCTION_NAME>

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

firebase help functions:log

استخدام وحدة التحكّم في Google Cloud

يمكنك الاطّلاع على سجلّات الوظائف في وحدة تحكُّم Google Cloud.

استخدام واجهة مستخدم التسجيل في السحابة الإلكترونية

يمكنك الاطّلاع على سجلات Cloud Functions. في واجهة مستخدم تسجيل الدخول إلى السحابة الإلكترونية

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

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

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

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

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