Strumento di log di debug di Cast

L'SDK Web receiver fornisce l'API CastDebugLogger per consentire agli sviluppatori di eseguire il debug dell'app WebRicevitore e di un'app complementare Strumento Comando e controllo (CaC) per acquisire logaritmi.

Inizializzazione

Per utilizzare l'API CastDebugLogger, includi il seguente script nella L'app WebRicevitore subito dopo lo script dell'SDK WebRicevitore:

<!-- 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>

Crea l'oggetto CastDebugLogger e attiva il logger:

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

Quando il logger di debug è attivato, viene visualizzato un overlay che mostra la MODALITÀ DI DEBUG. mostra sul ricevitore.

Registra eventi player

Con CastDebugLogger puoi registrare facilmente gli eventi del player attivati da l'SDK Web receiver e utilizzare diversi livelli di logger per registrare i dati sugli eventi. La configurazione di loggerLevelByEvents richiede cast.framework.events.EventType e cast.framework.events.category per specificare gli eventi da registrare.

Ad esempio, se vuoi sapere quando vengono attivati gli eventi CORE del player o una modifica mediaStatus, utilizza la seguente configurazione per registrare eventi:

castDebugLogger.loggerLevelByEvents = {
  'cast.framework.events.category.CORE': cast.framework.LoggerLevel.INFO,
  'cast.framework.events.EventType.MEDIA_STATUS': cast.framework.LoggerLevel.DEBUG
}

Registrare messaggi personalizzati con tag personalizzati

L'API CastDebugLogger consente di creare messaggi di log da visualizzare overlay di debug del ricevitore web con colori diversi. Usa i seguenti metodi di log, elencati in ordine di priorità: dalla più alta alla più bassa:

  • castDebugLogger.error(custom_tag, message);
  • castDebugLogger.warn(custom_tag, message);
  • castDebugLogger.info(custom_tag, message);
  • castDebugLogger.debug(custom_tag, message);

Per ogni metodo di log, il primo parametro deve essere un tag personalizzato e Il secondo parametro è il messaggio di log. Il tag può essere qualsiasi stringa che ritieni utile.

Ecco un esempio di come utilizzare il logger di debug nell'intercettatore 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);
                    }
                }
            );
        });
    }
);

Puoi controllare quali messaggi vengono visualizzati nell'overlay di debug impostando il log in loggerLevelByTags per ogni tag personalizzato. Ad esempio, l'attivazione di un viene visualizzato un tag personalizzato con livello di log cast.framework.LoggerLevel.DEBUG tutti i messaggi aggiunti con messaggi di log di errore, avviso, informazioni e debug. Un altro Ad esempio, se attivi un tag personalizzato con livello WARNING, verranno visualizzati i messaggi di log di errore e avviso.

La configurazione di loggerLevelByTags è facoltativa. Se non è configurato un tag personalizzato a livello di logger, tutti i messaggi di log verranno visualizzati nell'overlay di debug.

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

Overlay di debug

Cast Debug Logger fornisce un overlay di debug sul ricevitore web da mostrare i tuoi messaggi di log personalizzati. Utilizza showDebugLogs per attivare/disattivare l'overlay di debug e clearDebugLogs per cancellare i messaggi di log sull'overlay.

Promemoria: usa showDebugLogs e clearDebugLogs dopo che castDebugLogger è in un bucket con il controllo delle versioni attivo.

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