יומן ניפוי באגים ב-Cast

ה-SDK של מקלט האינטרנט מספק למפתחים את ממשק ה-API של CastDebugLogger כדי לנפות באגים בקלות באפליקציית האינטרנט שלו, ובכלי הפקודה והבקרה (CaC) הנלווים כדי לתעד יומנים.

אתחול

כדי להשתמש ב-CastDebugLogger API, עליכם לכלול את הסקריפט הבא באפליקציה של Web Tuner SDK מיד לאחר הסקריפט של Web Weber SDK:

<!-- Web Receiver SDK -->
<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<!-- Cast Debug Logger -->
<script src="//www.gstatic.com/cast/sdk/libs/devtools/debug_layer/caf_receiver_logger.js"></script>

יוצרים את האובייקט CastDebugLogger ומפעילים את יומן הרישום:

const castDebugLogger = cast.debug.CastDebugLogger.getInstance();

const context = cast.framework.CastReceiverContext.getInstance();

context.addEventListener(cast.framework.system.EventType.READY, () => {
  if (!castDebugLogger.debugOverlayElement_) {
      // Enable debug logger and show a 'DEBUG MODE' overlay at top left corner.
      castDebugLogger.setEnabled(true);
  }
});

כשכלי ניפוי הבאגים מופעל, מופיעה במקלט שכבת-על שמציגה את מצב ניפוי באגים.

רישום אירועי שחקן

בעזרת CastDebugLogger אפשר לתעד בקלות אירועים של שחקנים שמופעלים על ידי ה-Web Tuner SDK, ולהשתמש ברמות יומן שונות כדי לתעד את נתוני האירועים. כדי להגדיר אירועים צריך לתעד את ההגדרות של loggerLevelByEvents ב-cast.framework.events.EventType וב-cast.framework.events.category.

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

castDebugLogger.loggerLevelByEvents = {
  'cast.framework.events.category.CORE': cast.framework.LoggerLevel.INFO,
  'cast.framework.events.EventType.MEDIA_STATUS': cast.framework.LoggerLevel.DEBUG
}

רישום הודעות מותאמות אישית באמצעות תגים מותאמים אישית

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

  • castDebugLogger.error(custom_tag, message);
  • castDebugLogger.warn(custom_tag, message);
  • castDebugLogger.info(custom_tag, message);
  • castDebugLogger.debug(custom_tag, message);

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

הנה דוגמה לאופן השימוש בכלי לניפוי באגים בווידג'ט LOAD.

const LOG_TAG = 'MyReceiverApp';

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    request => {
        castDebugLogger.debug(LOG_TAG, 'Intercepting LOAD request');

        return new Promise((resolve, reject) => {
            fetchMediaAsset(request.media.contentId).then(
                data => {
                    let item = data[request.media.contentId];
                    if (!item) {
                        castDebugLogger.error(LOG_TAG, 'Content not found');

                        reject();
                    } else {
                        request.media.contentUrl = item.stream.hls;
                        castDebugLogger.info(LOG_TAG,
                            'Playable URL:', request.media.contentUrl);

                        resolve(request);
                    }
                }
            );
        });
    }
);

כדי לקבוע אילו הודעות יופיעו בשכבת-העל של ניפוי הבאגים, אפשר להגדיר את רמת היומן ב-loggerLevelByTags לכל תג מותאם אישית. לדוגמה, הפעלת תג מותאם אישית ברמת היומן cast.framework.LoggerLevel.DEBUG תציג את כל ההודעות שנוספו עם הודעות שגיאה, אזהרה, מידע והודעות יומן ניפוי באגים. דוגמה נוספת היא שהפעלת תג מותאם אישית ברמת WARNING תציג רק הודעות שגיאה ותזהיר את היומנים.

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

const LOG_TAG1 = 'Tag1';
const LOG_TAG2 = 'Tag2';

// Set verbosity level for custom tags
castDebugLogger.loggerLevelByTags = {
    [LOG_TAG1]: cast.framework.LoggerLevel.WARNING,
    [LOG_TAG2]: cast.framework.LoggerLevel.DEBUG,
};
castDebugLogger.debug(LOG_TAG1, 'debug log from tag1');
castDebugLogger.info(LOG_TAG1, 'info log from tag1');
castDebugLogger.warn(LOG_TAG1, 'warn log from tag1');
castDebugLogger.error(LOG_TAG1, 'error log from tag1');

castDebugLogger.debug(LOG_TAG2, 'debug log from tag2');
castDebugLogger.info(LOG_TAG2, 'info log from tag2');
castDebugLogger.warn(LOG_TAG2, 'warn log from tag2');
castDebugLogger.error(LOG_TAG2, 'error log from tag2');

// example outputs:
// [Tag1] [WARN] warn log from tag1
// [Tag1] [ERROR] error log from tag1
// [Tag2] [DEBUG] debug log from tag2
// [Tag2] [INFO] info log from tag2
// [Tag2] [WARN] warn log from tag2
// [Tag2] [ERROR] error log from tag2

שכבת-על של ניפוי באגים

יומן ניפוי הבאגים של Cast מספק שכבת-על של ניפוי באגים במקלט האינטרנט כדי להציג את הודעות היומן בהתאמה אישית. תוכלו להשתמש במקש showDebugLogs כדי להחליף את מצב שכבת-העל של ניפוי הבאגים וב-clearDebugLogs כדי למחוק את הודעות היומן בשכבת-העל.

תזכורת: שימוש ב-showDebugLogs וב-clearDebugLogs לאחר הפעלת castDebugLogger.

const context = cast.framework.CastReceiverContext.getInstance();

context.addEventListener(cast.framework.system.EventType.READY, () => {
  if (!castDebugLogger.debugOverlayElement_) {
      // Enable debug logger and show a 'DEBUG MODE' overlay at top left corner.
      castDebugLogger.setEnabled(true);
      // Show debug overlay
      castDebugLogger.showDebugLogs(true);
      // Clear log messages on debug overlay
      castDebugLogger.clearDebugLogs();
  }
});