مسجِّل تصحيح أخطاء الإرسال

توفّر حزمة تطوير البرامج (SDK) الخاصة بمستقبل الويب واجهة برمجة تطبيقات CastDebugLogger، ما يتيح لمطوّري البرامج تصحيح أخطاء تطبيق "مستلِم الويب" بسهولة وأداة Command وCaC مصاحبة لتسجيل السجلات.

الإعداد

لاستخدام CastDebugLogger API، يجب تضمين النص البرمجي التالي في تطبيق Web Host مباشرةً بعد النص البرمجي لحزمة تطوير البرامج (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 لمسح رسائل السجل على التراكب.

تذكير: استخدِم 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();
  }
});