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 ilgi çekici 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
Spatial Anchors, günlük kaydı için standart işlem moduna ek olarak bir tanılama moduna da sahiptir. Tanılama modu ortamın görüntülerini yakalar ve diske kaydeder. Bu modu kullanarak belirli türlerde sorunların hatalarını ayıklayabilirsiniz( örneğin, bir yer işaretine öngörülebilir bir şekilde bulunamaması gibi). 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 bir destek etkileşimi sırasında, bir Microsoft temsilcisi daha fazla araştırma için bir tanılama paketi göndermek isteyip istemediğinizi sorabilir. Bu durumda tanılama paketini gönderebilmek için tanılamayı etkinleştirmeye ve sorunu yeniden oluşturmaya karar vekleyebilirsiniz.
Bir 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österilir.
Tanılama günlüğünü etkinleştirme
Tanılama günlüğü için bir oturumu etkinleştirdiğinizde, oturumdaki tüm işlemlerin yerel dosya sisteminde ilgili tanılama günlüğü 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ığı, Microsoft'a bir tanılama paketinin 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 parçaları
Tanılama paketi aşağıdaki bilgileri içerebilir:
- Ana kare görüntüleri: Tanılama etkinleştirildiğinde oturum sırasında yakalanan ortamın görüntüleri.
- Günlükler: Çalışma zamanı tarafından kaydedilen günlük olayları.
- Oturum meta verileri: Oturumu tanımlayan meta veriler.