ה-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();
}
});