Azure Spatial Anchors'ta günlüğe kaydetme ve tanılama

Azure Spatial Anchors, uygulama geliştirme için yararlı olan standart bir günlüğe kaydetme mekanizması sağlar. Spatial Anchors tanılama günlüğü modu, hata ayıklama için daha fazla bilgiye ihtiyacınız olduğunda kullanışlıdır. Tanılama günlüğü ortamın görüntülerini depolar.

Standart günlük kaydı

Spatial Anchors API'sinde, uygulama geliştirme ve hata ayıklama için yararlı günlükler almak için günlüğe kaydetme mekanizmasına abone olabilirsiniz. Standart günlük API'leri ortamın resimlerini cihaz diskinde depolamaz. SDK bu günlükleri olay geri çağırmaları olarak sağlar. Bu günlükleri uygulamanın günlük mekanizmasıyla tümleştirmek size bağlı.

Günlük iletilerinin yapılandırması

Kullanıcı için iki geri çağırma vardır. Aşağıdaki örnekte oturumun nasıl yapılandırılır gösterilmektedir.

    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;

Olaylar ve özellikler

Oturumdaki günlükleri ve hataları işlemek için bu olay geri çağırmaları sağlanır:

  • LogLevel: Çalışma zamanından alınacak olayların ayrıntı düzeyini belirtir.
  • OnLogDebug: Standart hata ayıklama günlüğü olayları sağlar.
  • Hata: Çalışma zamanının hata olarak kabul ettiğini düşündüğü günlük olaylarını sağlar.

Tanılama günlüğüne kaydetme

Günlük kaydı için standart işlem moduna ek olarak Spatial Anchors'ın bir tanılama modu da vardır. Tanılama modu ortamın görüntülerini yakalar ve diske kaydeder. Bir tutturucunun tahmin edilebilir şekilde bulunamaması gibi bazı sorun türlerinin hatalarını ayıklamak için bu modu kullanabilirsiniz. Tanılama günlüğünü yalnızca belirli bir sorunu yeniden oluşturmak için etkinleştirin. Ardından devre dışı bırakın. Uygulamalarınızı normal şekilde çalıştırırken tanılamayı etkinleştirmeyin.

Microsoft ile destek etkileşimi sırasında, bir Microsoft temsilcisi daha fazla araştırma için bir tanılama paketi göndermek isteyip istemediğini sorabilir. Bu durumda tanılama paketini gönderebilmek için tanılamayı etkinleştirmeye ve sorunu yeniden oluşturmaya karar vekleyebilirsiniz.

Microsoft temsilcisinin önceden onayını almadan Microsoft'a bir tanılama günlüğü gönderirseniz gönderim yanıtsız kalır.

Aşağıdaki bölümlerde tanılama modunun nasıl etkinleştirileceği ve tanılama günlüklerinin Microsoft'a nasıl gönderileceği gösterilmektedir.

Tanılama günlüğünü etkinleştirme

Tanılama günlüğü için bir oturumu etkinleştirdiğinizde, oturumdaki tüm işlemler yerel dosya sisteminde ilgili tanılama günlüğüne sahip olur. Günlüğe kaydetme sırasında ortamın görüntüleri diske kaydedilir.

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

Tanılama paketini gönderme

Aşağıdaki kod parçacığı, Tanılama paketinin Microsoft'a nasıl gönder yapılacağını gösterir. Bu paket, tanılamayı etkinleştirdikten sonra oturum tarafından yakalanan ortamın görüntülerini içerir.

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

Tanılama paketinin bölümleri

Tanılama paketi aşağıdaki bilgileri içerebilir:

  • Ana kare görüntüleri: Tanılama etkinken oturum sırasında yakalanan ortamın görüntüleri.
  • Günlükler: Çalışma zamanı tarafından kaydedilen olayları günlüğe kaydedin.
  • Oturum meta verileri: Oturumu tanımlayan meta veriler.