Protokolování a diagnostika v Azure Spatial Anchors

Azure Spatial Anchors poskytuje standardní mechanismus protokolování, který je užitečný pro vývoj aplikací. Režim protokolování diagnostiky Spatial Anchors je užitečný, když potřebujete další informace pro ladění. Protokolování diagnostiky ukládá image prostředí.

Standardní protokolování

V rozhraní API Spatial Anchors se můžete přihlásit k odběru mechanismu protokolování, abyste získali užitečné protokoly pro vývoj a ladění aplikací. Standardní rozhraní API protokolování neukládají obrázky prostředí na disk zařízení. Sada SDK tyto protokoly poskytuje jako zpětná volání událostí. Je na vás, abyste tyto protokoly integrovali do mechanismu protokolování aplikace.

Konfigurace zpráv protokolu

Pro uživatele existují dvě zpětná volání, která jsou pro uživatele zajímavá. Následující ukázka ukazuje, jak nakonfigurovat relaci.

    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;

Události a vlastnosti

Tyto zpětná volání událostí jsou k dispozici pro zpracování protokolů a chyb z relace:

  • LogLevel: Určuje úroveň podrobností pro události, které mají přijímat z modulu runtime.
  • OnLogDebug: Poskytuje standardní události protokolu ladění.
  • Chyba: Poskytuje události protokolu, které modul runtime považuje za chyby.

Protokolování diagnostiky

Kromě standardního režimu provozu pro protokolování má Spatial Anchors také režim diagnostiky. Režim diagnostiky zachycuje image prostředí a protokoluje je na disk. Tento režim můžete použít k ladění určitých druhů problémů, jako je selhání předvídatelného vyhledání ukotvení. Povolte protokolování diagnostiky pouze pro reprodukci konkrétního problému. Pak ho zakažte. Nepovolujte diagnostiku při normálním spouštění aplikací.

Během interakce podpory s Microsoftem se může zástupce Microsoftu zeptat, jestli jste ochotni odeslat diagnostický balíček k dalšímu šetření. V takovém případě se můžete rozhodnout povolit diagnostiku a reprodukovat problém, abyste mohli odeslat diagnostický balíček.

Pokud odešlete do Microsoftu diagnostický protokol bez předchozího potvrzení od zástupce Microsoftu, odeslání nebude nezodpovězeno.

Následující části ukazují, jak povolit režim diagnostiky a jak odeslat diagnostické protokoly do Microsoftu.

Povolení diagnostického protokolování

Když povolíte relaci pro protokolování diagnostiky, všechny operace v relaci mají odpovídající protokolování diagnostiky v místním systému souborů. Během protokolování se image prostředí ukládají na 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;
    . . .
}

Odeslání diagnostické sady

Následující fragment kódu ukazuje, jak odeslat diagnostický balíček do Microsoftu. Tato sada bude obsahovat image prostředí zachyceného relací po povolení diagnostiky.

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

Části diagnostické sady

Sada diagnostických prostředků může obsahovat následující informace:

  • Image klíčových snímků: Obrázky prostředí zachycené během relace během diagnostiky
  • Protokoly: Protokolování událostí zaznamenaných modulem runtime.
  • Metadata relace: Metadata, která identifikují relaci.