कास्ट डीबग लॉगर

वेब रिसीवर SDK, लॉग कैप्चर करने के लिए डेवलपर के लिए CastDebugLogger API उपलब्ध कराता है, ताकि वह आसानी से अपने वेब रिसीवर ऐप्लिकेशन और साथी कमांड और नियंत्रण (CAC) टूल को डीबग कर सके.

डेटा लेयर में इवेंट बनाने की प्रोसेस

CastDebugLogger API का इस्तेमाल करने के लिए, 'वेब रिसीवर 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 का इस्तेमाल करके, आप आसानी से वेब रिसीवर 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
}

कस्टम टैग से कस्टम मैसेज लॉग करना

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

डीबग ओवरले

कास्ट डीबग लॉग, वेब रिसीवर पर आपके कस्टम लॉग मैसेज दिखाने के लिए डीबग ओवरले देता है. डीबग ओवरले को टॉगल करने के लिए showDebugLogs का इस्तेमाल करें और ओवरले पर लॉग मैसेज को मिटाने के लिए clearDebugLogs का इस्तेमाल करें.

रिमाइंडर: CastDebugLogger चालू होने के बाद showDebugLogs और clearDebugLogs इस्तेमाल करें.

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