כתיבה והצגה של יומנים


רישום ביומן הוא כלי חשוב לניפוי באגים ולמעקב אחר קוד. ב-Cloud Functions יש לכם אפשרות להשתמש ב-SDK של ה-logger, ב-Cloud Logging בהתאמה אישית של Google או בתקן האובייקט console לפיתוח לאינטרנט.

כתיבה ביומן

מומלץ להשתמש ב-SDK של יומן Cloud Functions ברוב המקרים, אבל יכול להיות שתבחרו באחת מהאפשרויות האחרות מהסיבות הבאות:

  • יש לך בסיס קוד קיים ואתם מעדיפים לא לבצע ארגון מחדש מ-console.log.
  • חובה להכיר את Cloud Logging (לשעבר StackDriver הרישום ביומן) ומעדיפים כדי להשתמש בו לרישום ביומן מותאם אישית.

שימוש ב-SDK של ה-logger של Cloud Functions

ה-SDK של יומן הרישום Cloud Functions מספק ממשק סטנדרטי עם ה-API דומה להצהרות 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.
  • הודעות מערכת פנימיות הן ברמת יומן DEBUG.

באמצעות logger.write(), אתם יכולים לכתוב את רמות החומרה של ההוספה ביומן של רשומות ביומן של CRITICAL, ALERT ו-EMERGENCY. מידע נוסף זמין במאמר LogSeverity.

יומני Cloud Logging בהתאמה אישית

יומני Cloud Functions עם ה-SDK של ה-logger מגובים על ידי 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 של ה-logger לפלטפורמה שלכם. ב-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.
  • הודעות מערכת פנימיות הן ברמת יומן DEBUG.

צפייה ביומנים

אפשר לראות את היומנים של 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 שלך.

תרשימים והתראות

אחרי שיוצרים מדדים מבוססי יומנים כדי לעקוב אחרי הפונקציות, אפשר ליצור תרשימים והתראות על סמך המדדים האלה. לדוגמה, אפשר ליצור תרשים כדי להציג זמן אחזור חזותי לאורך זמן, או ליצור התראה שתודיע לכם אם מתרחשת שגיאה מסוימת לעיתים קרובות מדי.

למידע מפורט על אופן השימוש, ראו יצירת תרשימים והתראות כדי להשתמש במדדים מבוססי-יומנים בתרשימים ובמדיניות ההתראות.