Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

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

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

כתיבת יומנים

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

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

שימוש ב- Cloud Functions loger SDK

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

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

יומני רישום ענן מותאמים אישית

יומני 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

הפתרון המומלץ לרישום מפונקציה הוא להשתמש ב- logger SDK . במקום זאת, תוכל להשתמש בקריאות רישום סטנדרטיות של 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 .

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

יומנים עבור פונקציות ענן ניתנות לצפייה ב- Google Cloud Console , ממשק המשתמש של 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 Console

אתה יכול להציג יומנים של פונקציות ב- Google Cloud Console .

שימוש ב-Cloud Logging UI

אתה יכול להציג יומנים עבור פונקציות ענן בממשק המשתמש של Cloud Logging.

ניתוח יומנים

Cloud Logging מציע חבילה רבת עוצמה של כלים לניתוח יומנים שבהם אתה יכול להשתמש כדי לנטר את פונקציות הענן שלך. כלים אלה חזקים במיוחד בשילוב עם רישום מותאם אישית .

מדדים מבוססי יומנים

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

resource.type="cloud_function"
resource.labels.function_name="myCloudFunction"
resource.labels.region="us-central1"

אם רשמת אירועים עם עומסי JSON מותאמים אישית, תוכל לסנן באמצעות המפתחות והערכים שסיפקת:

resource.type="cloud_function"
resource.labels.function_name="CustomMetrics"
jsonPayload.event="my-event"

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

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

עבור יומנים מבוססי טקסט, כגון אלו הנובעים מ- console.log() בפונקציות שלך, אתה יכול לחלץ ערכים ותוויות מהשדה textPayload באמצעות ביטויים רגולריים. עבור יומנים מותאמים אישית עם נתונים מובנים, תוכל לגשת ישירות לנתונים בשדה jsonPayload .

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

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

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