التسجيل أداة مهمة لتصحيح الأخطاء في الرمز البرمجي ومراقبته.
تمنحك Cloud Functions خيار استخدام حزمة SDK لتسجيل البيانات، أو Cloud Logging المخصّصة من Google، أو معيار عنصر console
للتطوير على الويب.
كتابة السجلات
على الرغم من أنّ حزمة تطوير البرامج (SDK) الخاصة بـ Cloud Functions أداة تسجيل البيانات هي الخيار الأفضل في معظم الحالات، يمكنك اختيار أحد الخيارات الأخرى للأسباب التالية:
- لديك قاعدة رموز برمجية حالية وتفضّل عدم إعادة تصميمها من
console.log
. - أنت على دراية بخدمة Cloud Logging (المعروفة سابقًا باسم StackDriver logging) وتفضّل استخدامها لتسجيل البيانات المخصّص.
استخدام حزمة تطوير البرامج (SDK) الخاصة بأداة تسجيل الأحداث Cloud Functions
توفّر حزمة تطوير البرامج (SDK) الخاصة بمسجّل Cloud Functions واجهة عادية تتضمّن واجهة برمجة تطبيقات مشابهة لعبارات console.log
وتتيح مستويات تسجيل أخرى.
يمكنك استخدام حزمة تطوير البرامج (SDK) هذه لتسجيل الأحداث باستخدام بيانات منظَّمة، ما يتيح إجراء التحليل والمراقبة بسهولة أكبر.
تتيح حزمة تطوير البرامج (SDK) الخاصة بأداة تسجيل الأحداث إدخالات السجلّ كجزء من عملية استيراد أحرف البدل. على سبيل المثال:
const functions = require("firebase-functions/v1");
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 Logging مخصّصة
يتم الاحتفاظ بنسخة احتياطية من سجلّات Cloud Functions التي تستخدم حزمة 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. - تكون رسائل النظام الداخلية بمستوى سجلّ تصحيح الأخطاء.
عرض السجلّات
يمكن الاطّلاع على سجلّات Cloud Functions إما في
وحدة تحكّم Google Cloud أو في
واجهة مستخدم Cloud Logging أو من خلال أداة سطر الأوامر 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
يمكنك الاطّلاع على سجلّات Cloud Functions في واجهة مستخدم Cloud Logging.
تحليل السجلات
توفّر Cloud Logging حزمة فعّالة من أدوات تحليل السجلات التي يمكنك استخدامها لمراقبة Cloud Functions.
الرسومات البيانية والتنبيهات
بعد إنشاء مقاييس مستندة إلى السجلّات لتتبُّع وظائفك، يمكنك إنشاء رسومات بيانية وتنبيهات استنادًا إلى هذه المقاييس. على سبيل المثال، يمكنك إنشاء رسم بياني لتصوّر وقت الاستجابة بمرور الوقت، أو إنشاء تنبيه لإعلامك في حال حدوث خطأ معيّن بشكل متكرّر.
راجِع إنشاء رسوم بيانية وتنبيهات للحصول على معلومات مفصّلة حول كيفية استخدام المقاييس المستندة إلى السجلّات في الرسوم البيانية وسياسات التنبيه.