웹 수신기 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
를 사용하면 개발자가 실행한 플레이어 이벤트를 쉽게 로깅할 수 있습니다.
다른 로거 수준을 사용하여 이벤트 데이터를 로깅합니다.
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 API를 사용하면 웹 수신기 디버그 오버레이를 다른 색상으로 표시합니다. 다음과 같은 로그 메서드를 사용합니다. 가장 높은 우선순위에서 가장 낮은 우선순위 순으로 나열됩니다.
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
를 사용하여 오버레이에서 로그 메시지를 지웁니다.
알림: 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();
}
});