Loggning och diagnostik i Azure Spatial Anchors

Azure Spatial Anchors tillhandahåller en standardloggningsmekanism som är användbar för apputveckling. Loggningsläget för Spatial Anchors-diagnostik är användbart när du behöver mer information för felsökning. Diagnostikloggning lagrar bilder av miljön.

Standardloggning

I SPATIAL Anchors-API:et kan du prenumerera på loggningsmekanismen för att få användbara loggar för programutveckling och felsökning. Standardloggnings-API:erna lagrar inte bilder av miljön på enhetsdisken. SDK:t tillhandahåller dessa loggar som händelseåteranrop. Det är upp till dig att integrera loggarna i programmets loggningsmekanism.

Konfiguration av loggmeddelanden

Det finns två återanrop av intresse för användaren. Följande exempel visar hur du konfigurerar sessionen.

    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;

Händelser och egenskaper

Dessa händelseåteranrop tillhandahålls för att bearbeta loggar och fel från sessionen:

  • LogLevel: Anger detaljnivån för de händelser som ska ta emot från körningen.
  • OnLogDebug: Tillhandahåller standardhändelser för felsökningsloggar.
  • Fel: Tillhandahåller logghändelser som körningen anser vara fel.

Diagnostikloggning

Förutom standardläget för loggning har Spatial Anchors även ett diagnostikläge. Diagnostikläget tar bilder av miljön och loggar dem till disken. Du kan använda det här läget för att felsöka vissa typer av problem, till exempel om det inte går att hitta en fästpunkt på ett förutsägbart sätt. Aktivera endast diagnostikloggning för att återskapa ett specifikt problem. Inaktivera den sedan. Aktivera inte diagnostik när du kör dina appar normalt.

Under en supportinteraktion med Microsoft kan en Microsoft-representant fråga om du är villig att skicka in ett diagnostikpaket för vidare undersökning. I det här fallet kan du välja att aktivera diagnostik och återskapa problemet så att du kan skicka diagnostikpaketet.

Om du skickar en diagnostiklogg till Microsoft utan föregående bekräftelse från en Microsoft-representant kommer insändningen att bli obesvarad.

I följande avsnitt visas hur du aktiverar diagnostikläge och hur du skickar diagnostikloggar till Microsoft.

Aktivera diagnostikloggning

När du aktiverar en session för diagnostikloggning har alla åtgärder i sessionen motsvarande diagnostikloggning i det lokala filsystemet. Under loggningen sparas avbildningar av miljön på disken.

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

Skicka diagnostikpaketet

Följande kodfragment visar hur du skickar ett diagnostikpaket till Microsoft. Det här paketet innehåller bilder av miljön som fångas av sessionen när du har aktiverat diagnostik.

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

Delar av ett diagnostikpaket

Diagnostikpaketet kan innehålla följande information:

  • Keyframe-avbildningar: Bilder av miljön som togs under sessionen medan diagnostik aktiverades.
  • Loggar: Logghändelser som registrerats av körningen.
  • Sessionsmetadata: Metadata som identifierar sessionen.