Pengelogan dan diagnostik di Azure Spatial Anchors

Azure Spatial Anchors menyediakan mekanisme pengelogan standar yang berguna untuk pengembangan aplikasi. Mode pembuatan log diagnostik Spatial Anchors berguna ketika Anda memerlukan informasi selengkapnya untuk penelusuran kesalahan. Pembuatan log diagnostik menyimpan gambar lingkungan.

Pengelogan standar

Dalam API Spatial Anchors, Anda dapat berlangganan mekanisme pengelogan untuk mendapatkan log yang berguna dalam pengembangan dan penelusuran kesalahan aplikasi. API pengelogan standar tidak menyimpan gambar lingkungan di disk perangkat. SDK menyediakan log ini sebagai panggilan balik peristiwa. Anda boleh mengintegrasikan log ini ke dalam mekanisme pengelogan aplikasi.

Konfigurasi pesan log

Ada dua panggilan balik yang menarik bagi pengguna. Sampel berikut menunjukkan cara mengonfigurasi sesi.

    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;

Peristiwa dan properti

Panggilan balik peristiwa ini disediakan untuk memproses log dan kesalahan dari sesi:

  • LogLevel: Menentukan tingkat detail peristiwa yang diterima dari runtime bahasa umum.
  • OnLogDebug: Menyediakan peristiwa log debug standar.
  • Error: Menyediakan peristiwa log yang dianggap runtime bahasa umum sebagai kesalahan.

Pembuatan log diagnostik

Selain mode operasi standar untuk pengelogan, Spatial Anchors juga memiliki mode diagnostik. Mode diagnostik mengambil gambar lingkungan dan mencatatnya ke disk. Anda dapat menggunakan mode ini untuk men-debug jenis masalah tertentu, seperti kegagalan untuk menemukan jangkar yang dapat diprediksi. Mengaktifkan pembuatan log diagnostik hanya untuk mereproduksi masalah tertentu. Kemudian nonaktifkan. Jangan aktifkan diagnostik saat Anda menjalankan aplikasi secara normal.

Selama interaksi dukungan dengan Microsoft, perwakilan Microsoft mungkin bertanya apakah Anda bersedia mengirimkan bundel diagnostik untuk penyelidikan lebih lanjut. Dalam hal ini, Anda dapat memutuskan untuk mengaktifkan diagnostik dan mereproduksi masalah sehingga Anda dapat mengirimkan bundel diagnostik.

Jika Anda mengirimkan log diagnostik ke Microsoft tanpa pengakuan sebelumnya dari perwakilan Microsoft, pengiriman akan tidak terjawab.

Bagian berikut ini memperlihatkan cara mengaktifkan mode diagnostik dan juga cara mengirimkan log diagnostik ke Microsoft.

Mengaktifkan pembuatan log diagnostik

Saat Anda mengaktifkan sesi untuk pembuatan log diagnostik, semua operasi dalam sesi memiliki pembuatan log diagnostik yang sesuai dalam sistem file lokal. Selama pengelogan, gambar lingkungan disimpan ke 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;
    . . .
}

Kirim bundel diagnostik

Cuplikan kode berikut menunjukkan cara mengirimkan bundel diagnostik ke Microsoft. Bundel ini akan mencakup gambar lingkungan yang diambil oleh sesi setelah Anda mengaktifkan 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);
}

Bagian dari bundel diagnostik

Bundel diagnostik mungkin berisi informasi berikut:

  • Gambar bingkai kunci: Gambar lingkungan yang diambil selama sesi sementara diagnostik diaktifkan.
  • Log: Log kejadian yang direkam oleh runtime bahasa umum.
  • Metadata sesi: Metadata yang mengidentifikasi sesi.