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.