Registro em log e diagnósticos em Âncoras Espaciais do Azure
As Âncoras Espaciais do Azure oferecem um mecanismo de registro em log padrão que é útil para o desenvolvimento de aplicativos. O modo de log de diagnóstico das Âncoras Espaciais é útil quando você precisa de mais informações para depuração. O log de diagnóstico armazena imagens do ambiente.
Log padrão
Na API de Âncoras Espaciais, você pode assinar o mecanismo de registro em log para obter logs úteis para desenvolvimento e depuração de aplicativos. As APIs de log padrão não armazenam fotos do ambiente no disco do dispositivo. O SDK fornece esses logs como retornos de chamada de evento. Cabe a você integrar esses logs ao mecanismo de registro em log do aplicativo.
Configuração de mensagens de log
Há dois retornos de chamada de interesse para o usuário. A amostra abaixo 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
Estes retornos de chamada de evento são fornecidos para processar logs e erros da sessão:
- LogLevel: especifica o nível de detalhes dos eventos a serem recebidos do runtime.
- OnLogDebug: fornece eventos de log de depuração padrão.
- Error: fornece eventos de log que o runtime considera erros.
Log de diagnósticos
Além do modo padrão de operação para registro em log, as Âncoras Espaciais também têm um modo de diagnóstico. O modo de diagnóstico captura imagens do ambiente e os registra no disco. Você pode usar esse modo para depurar determinados tipos de problemas, como dificuldade em localizar uma âncora de maneira previsível. Habilite o log de diagnóstico apenas para reproduzir um problema específico. Em seguida, desabilite-o. Não habilite o diagnóstico quando estiver executando aplicativos normalmente.
Durante uma conversa com o suporte da Microsoft, talvez o representante pergunte se você deseja enviar um pacote de diagnóstico para maior investigação. Nesse caso, você pode optar por habilitar o diagnóstico e reproduzir o problema para enviar o pacote de diagnóstico.
Se você enviar um log de diagnóstico à Microsoft sem confirmação prévia de um representante, o envio não será respondido.
As seções a seguir mostram como habilitar o modo de diagnóstico e também como enviar logs de diagnóstico à Microsoft.
Habilitar o registro em log de diagnóstico
Quando você habilita uma sessão para o log de diagnóstico, todas as operações na sessão têm o registro em log de diagnóstico correspondente no sistema de arquivos local. Durante o registro em log, 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 snippet de código abaixo mostra como enviar um pacote de diagnóstico à Microsoft. O pacote inclui imagens do ambiente capturado pela sessão depois que você habilitou 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 estas informações:
- Imagens de quadro-chave: imagens do ambiente capturadas na sessão enquanto o diagnóstico estava habilitado.
- Logs: eventos de log registrados pelo runtime.
- Metadados de sessão: metadados que identificam a sessão.