Registro em log e diagnóstico no âncoras espacial do AzureLogging and diagnostics in Azure Spatial Anchors

Âncoras espacial do Azure fornece um mecanismo de registro em log padrão que é útil para desenvolvimento de aplicativos.Azure Spatial Anchors provides a standard logging mechanism that's useful for app development. O modo de log de diagnóstico âncoras espacial é útil quando você precisa de mais informações para depuração.The Spatial Anchors diagnostics logging mode is useful when you need more information for debugging. Log de diagnóstico armazena imagens do ambiente.Diagnostics logging stores images of the environment.

Registro em log padrãoStandard logging

Na API do âncoras espacial, você pode assinar o mecanismo de log para obter logs úteis para desenvolvimento de aplicativos e a depuração.In the Spatial Anchors API, you can subscribe to the logging mechanism to get useful logs for application development and debugging. As APIs de log padrão não armazenam imagens do ambiente no disco do dispositivo.The standard logging APIs don't store pictures of the environment on the device disk. O SDK fornece esses logs como retornos de chamada do evento.The SDK provides these logs as event callbacks. Cabe a você para integrar esses logs de mecanismo de log do aplicativo.It's up to you to integrate these logs into the application's logging mechanism.

Configuração de mensagens de logConfiguration of log messages

Há dois retornos de chamada de interesse para o usuário.There are two callbacks of interest for the user. O exemplo a seguir mostra como configurar a sessão.The following sample shows how to configure the session.

    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;

Propriedades e eventosEvents and properties

Esses retornos de chamada do evento são fornecidos para processar os logs e erros da sessão:These event callbacks are provided to process logs and errors from the session:

  • LogLevel: Especifica o nível de detalhe para os eventos a serem recebidos do tempo de execução.LogLevel: Specifies the level of detail for the events to receive from the runtime.
  • OnLogDebug: Fornece eventos de log de depuração padrão.OnLogDebug: Provides standard debug log events.
  • Erro: Fornece eventos de log que o tempo de execução considera serem erros.Error: Provides log events that the runtime considers to be errors.

Log de diagnósticosDiagnostics logging

O modo padrão de operação para registro em log, além de âncoras espaciais também tem um modo de diagnóstico.In addition to the standard mode of operation for logging, Spatial Anchors also has a diagnostics mode. Modo de diagnóstico captura de imagens do ambiente e registra em log no disco.Diagnostics mode captures images of the environment and logs them to the disk. Você pode usar esse modo para determinados tipos de problemas, como falha de maneira previsível localizar uma âncora de depuração.You can use this mode to debug certain kinds of issues, like failure to predictably locate an anchor. Habilite o log de diagnóstico somente para reproduzir um problema específico.Enable diagnostics logging only to reproduce a specific issue. Em seguida, desabilitá-lo.Then disable it. Não habilite o diagnóstico, quando você estiver executando seus aplicativos normalmente.Don't enable diagnostics when you're running your apps normally.

Durante uma interação de suporte com a Microsoft, um representante da Microsoft pode perguntar se você estiver disposto a enviar um pacote de diagnóstico para uma investigação adicional.During a support interaction with Microsoft, a Microsoft representative might ask if you're willing to submit a diagnostics bundle for further investigation. Nesse caso, você pode decidir habilitar o diagnóstico e reproduza o problema para que você poder enviar o pacote de diagnóstico.In this case, you might decide to enable diagnostics and reproduce the issue so you can submit the diagnostic bundle.

Se você enviar o log de diagnóstico à Microsoft sem confirmação anterior de um representante da Microsoft, o envio será ficar sem resposta.If you submit a diagnostics log to Microsoft without prior acknowledgement from a Microsoft representative, the submission will go unanswered.

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.The following sections show how to enable diagnostics mode and also how to submit diagnostics logs to Microsoft.

Habilitar o registro em log de diagnósticoEnable diagnostics logging

Quando você habilita uma sessão para o log de diagnóstico, todas as operações na sessão têm correspondente log de diagnóstico no sistema de arquivos local.When you enable a session for diagnostics logging, all operations in the session have corresponding diagnostics logging in the local file system. Durante o registro em log, as imagens do ambiente são salvas no disco.During logging, images of the environment are saved to the disk.

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ósticoSubmit the diagnostics bundle

O trecho de código a seguir mostra como enviar um pacote de diagnóstico à Microsoft.The following code snippet shows how to submit a diagnostics bundle to Microsoft. Este pacote inclui imagens do ambiente capturado pela sessão depois que você habilitar o diagnóstico.This bundle will include images of the environment captured by the session after you enable diagnostics.

// 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ósticoParts of a diagnostics bundle

O pacote de diagnóstico pode conter as seguintes informações:The diagnostics bundle might contain the following information:

  • Imagens de quadro-chave: Imagens do ambiente capturada durante a sessão, enquanto o diagnóstico foi habilitado.Keyframe images: Images of the environment captured during the session while diagnostics were enabled.
  • Logs: Log de eventos registrados pelo tempo de execução.Logs: Log events recorded by the runtime.
  • Metadados de sessão: Metadados que identifica a sessão.Session metadata: Metadata that identifies the session.