Web Receiver SDK, CastDebugLogger API'yi geliştiricilerin kolayca sunması için Web Receiver uygulaması ve bir tamamlayıcı öğede hata ayıklama Yakalama için Komut ve Denetim (CaC) Aracı günlükler.
Başlatma
CastDebugLogger API'yi kullanmak için aşağıdaki komut dosyasını Web Receiver SDK komut dosyasından hemen sonraki Web Receiver uygulaması:
<!-- 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
nesnesini oluşturun ve günlük kaydediciyi etkinleştirin:
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);
}
});
Hata ayıklama günlük kaydı etkinleştirildiğinde HATA AYIKLAMA MODU görüntüleyen bir yer paylaşımı görebilirsiniz.
Oynatıcı Etkinliklerini Günlüğe Kaydet
CastDebugLogger
kullanarak,
web Buyer SDK'sı oluşturun ve etkinlik verilerini günlüğe kaydetmek için farklı günlükçü düzeyleri kullanın.
loggerLevelByEvents
yapılandırması cast.framework.events.EventType
içinde gerçekleştirilecek
ve cast.framework.events.category
girin.
Örneğin, CORE
adlı oynatıcı etkinliklerinin ne zaman tetiklendiğini öğrenmek isterseniz
bir mediaStatus
değişikliği yayınlandığında,
etkinlikler:
castDebugLogger.loggerLevelByEvents = {
'cast.framework.events.category.CORE': cast.framework.LoggerLevel.INFO,
'cast.framework.events.EventType.MEDIA_STATUS': cast.framework.LoggerLevel.DEBUG
}
Özel Mesajları Özel Etiketlerle Günlüğe kaydedin
CastDebugLogger API, farklı renklere sahip Web Alıcı hata ayıklama yer paylaşımı Aşağıdaki günlük yöntemlerini kullanın: en az öncelikliye göre sıralanır:
castDebugLogger.error(custom_tag, message);
castDebugLogger.warn(custom_tag, message);
castDebugLogger.info(custom_tag, message);
castDebugLogger.debug(custom_tag, message);
Her günlük yöntemi için ilk parametre bir özel etiket ve ikinci parametre log Message'dır. Etiket, yararlı bulduğunuz herhangi bir dize olabilir.
Aşağıda, LOAD
müdahalecisinde hata ayıklama günlük kaydedicinin nasıl kullanılacağına dair bir örnek verilmiştir.
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);
}
}
);
});
}
);
Günlüğü ayarlayarak hata ayıklama yer paylaşımında hangi mesajların görüneceğini kontrol edebilirsiniz
düzeyi loggerLevelByTags
olarak ayarlanır. Örneğin,
günlük düzeyi cast.framework.LoggerLevel.DEBUG
olan özel etiket görüntülenir
Hata, uyarı, bilgi ve hata ayıklama günlük mesajlarıyla eklenen tüm mesajlar. Diğer
Örneğin, WARNING
düzeyinde özel bir etiket etkinleştirildiğinde yalnızca
günlük mesajları oluşturur.
loggerLevelByTags
yapılandırması isteğe bağlıdır. Özel etiket yapılandırılmamışsa
tüm günlük mesajları hata ayıklama yer paylaşımında gösterilir.
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
Hata Ayıklama Yer Paylaşımı
Yayın Hata Ayıklama Günlükçüsü, Web Alıcısı'nda gösterilmesi için bir hata ayıklama yer paylaşımı
otomatik olarak oluşturabilirsiniz. Hata ayıklama yer paylaşımını açmak/kapatmak için showDebugLogs
öğesini kullanın
ve yer paylaşımlı günlük mesajlarını temizlemek için clearDebugLogs
tuşlarına basın.
Hatırlatma: castDebugLogger özelliği etkinleştirildikten sonra showDebugLogs
ve clearDebugLogs
kullanın
etkin.
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();
}
});