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.