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


يعد التسجيل أداة مهمة لتصحيح الأخطاء ومراقبة التعليمات البرمجية. تمنحك Cloud Functions خيار استخدام أداة تسجيل SDK الخاصة بها، أو تسجيل Google Cloud المخصص، أو معيار كائن console للتطوير للويب.

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

على الرغم من أنه يوصى باستخدام Cloud Functions logger SDK في معظم المواقف، إلا أنه يمكنك اختيار أحد الخيارات الأخرى لهذه الأسباب:

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

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

يوفر Cloud Functions logger 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() لها مستوى سجل التحذير .
  • أوامر logger.error() لها مستوى سجل الخطأ .
  • تحتوي رسائل النظام الداخلية على مستوى سجل DEBUG .

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

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

يتم دعم سجلات وظائف السحابة مع أداة تسجيل 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() على مستوى سجل الأخطاء .
  • تحتوي أوامر console.error() على مستوى سجل الأخطاء .
  • تحتوي رسائل النظام الداخلية على مستوى سجل DEBUG .

عرض السجلات

يمكن عرض سجلات وظائف السحابة إما في وحدة تحكم Google Cloud أو 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

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

استخدام واجهة المستخدم للتسجيل السحابي

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

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

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

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

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

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