Registo e diagnóstico nas Âncoras Espaciais do Azure

As Âncoras Espaciais do Azure fornecem um mecanismo de registo padrão que é útil para o desenvolvimento de aplicações. O modo de registro de diagnóstico de Âncoras Espaciais é útil quando você precisa de mais informações para depuração. O registro de diagnóstico armazena imagens do ambiente.

Registo padrão

Na API de Âncoras Espaciais, você pode se inscrever no mecanismo de log para obter logs úteis para desenvolvimento e depuração de aplicativos. As APIs de log padrão não armazenam imagens do ambiente no disco do dispositivo. O SDK fornece esses logs como retornos de chamada de eventos. Cabe a você integrar esses logs ao mecanismo de registro do aplicativo.

Configuração de mensagens de log

Há dois retornos de chamada de interesse para o usuário. O exemplo a seguir mostra como configurar a sessão.

    cloudSpatialAnchorSession = new CloudSpatialAnchorSession();
    . . .
    // set up the log level for the runtime session
    cloudSpatialAnchorSession.LogLevel = SessionLogLevel.Information;

    // configure the callback for the debug log
    cloudSpatialAnchorSession.OnLogDebug += CloudSpatialAnchorSession_OnLogDebug;

    // configure the callback for the error log
    cloudSpatialAnchorSession.Error += CloudSpatialAnchorSession_Error;

Eventos e propriedades

Esses retornos de chamada de eventos são fornecidos para processar logs e erros da sessão:

  • LogLevel: Especifica o nível de detalhe para os eventos a receber do tempo de execução.
  • OnLogDebug: Fornece eventos de log de depuração padrão.
  • Erro: Fornece eventos de log que o tempo de execução considera erros.

Registo de diagnóstico

Além do modo padrão de operação para registro, o Spatial Anchors também tem um modo de diagnóstico. O modo de diagnóstico captura imagens do ambiente e as registra no disco. Você pode usar esse modo para depurar certos tipos de problemas, como falha na localização previsível de uma âncora. Habilite o log de diagnóstico apenas para reproduzir um problema específico. Em seguida, desative-o. Não habilite o diagnóstico quando estiver executando seus aplicativos normalmente.

Durante uma interação de suporte com a Microsoft, um representante da Microsoft pode perguntar se você está disposto a enviar um pacote de diagnóstico para investigação adicional. Nesse caso, você pode decidir habilitar o diagnóstico e reproduzir o problema para poder enviar o pacote de diagnóstico.

Se você enviar um log de diagnóstico para a Microsoft sem confirmação prévia de um representante da Microsoft, o envio ficará sem resposta.

As seções a seguir mostram como habilitar o modo de diagnóstico e também como enviar logs de diagnóstico para a Microsoft.

Ativar o registo de diagnósticos

Quando você habilita uma sessão para registro de diagnóstico, todas as operações na sessão têm o log de diagnóstico correspondente no sistema de arquivos local. Durante o registro, as imagens do ambiente são salvas no disco.

private void ConfigureSession()
{
    cloudSpatialAnchorSession = new CloudSpatialAnchorSession();
    . . .

    // set up the log level for the runtime session
    cloudSpatialAnchorSession.LogLevel = SessionLogLevel.Information;

    // configure the callbacks for logging and errors
    cloudSpatialAnchorSession.OnLogDebug += CloudSpatialAnchorSession_OnLogDebug;
    cloudSpatialAnchorSession.Error += CloudSpatialAnchorSession_Error;

    // opt in to diagnostics logging of environment images
    // if this is enabled, the diagnostics bundle includes images of the environment captured by the session
    cloudSpatialAnchorSession.Diagnostics.ImagesEnabled = true;

    // set the level of detail to be collected in the diagnostics log by the session
    cloudSpatialAnchorSession.Diagnostics.LogLevel = SessionLogLevel.All;

    // set the max bundle size to capture the bug information
    cloudSpatialAnchorSession.Diagnostics.MaxDiskSizeInMB = 200;
    . . .
}

Enviar o pacote de diagnóstico

O trecho de código a seguir mostra como enviar um pacote de diagnóstico para a Microsoft. Esse pacote incluirá imagens do ambiente capturadas pela sessão depois que você habilitar o diagnóstico.

// method to handle the diagnostics bundle submission
private async Task CreateAndSubmitBundle()
{
    // create the diagnostics bundle manifest to collect the session information
    string path = await cloudSpatialAnchorSession
                              .Diagnostics
                              .CreateManifestAsync("Description of the issue");

    // submit the manifest and data to send feedback to Microsoft
    await cloudSpatialAnchorSession.Diagnostics.SubmitManifestAsync(path);
}

Partes de um pacote de diagnóstico

O pacote de diagnóstico pode conter as seguintes informações:

  • Imagens de quadro-chave: imagens do ambiente capturadas durante a sessão enquanto o diagnóstico estava ativado.
  • Logs: registra eventos registrados pelo tempo de execução.
  • Metadados da sessão: metadados que identificam a sessão.