共用方式為


Azure Spatial Anchors 中的記錄和診斷

Azure Spatial Anchors 提供適用於應用程式開發的標準記錄機制。 當您需要詳細資訊進行偵錯時,Spatial Anchors 診斷記錄模式十分實用。 診斷記錄會儲存環境的映像。

標準記錄

在 Spatial Anchors API 中,您可以訂閱記錄機制,以取得應用程式開發和偵錯的實用記錄。 標準記錄 API 不會將環境的圖片儲存在裝置磁碟上。 SDK 會提供這些記錄作為事件回呼。 您必須將這些記錄整合到應用程式的記錄機制中。

設定記錄訊息

使用者有兩個相關回呼。 下列預設範例顯示如何設定工作階段。

    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;

事件和屬性

系統會提供這些事件回呼來處理工作階段中的記錄和錯誤:

  • LogLevel:指定要從執行階段接收的事件詳細資料層級。
  • OnLogDebug:提供標準偵錯記錄事件。
  • 錯誤:提供執行階段視為錯誤的記錄事件。

診斷記錄

除了記錄的標準作業模式之外,Spatial Anchors 也有診斷模式。 診斷模式會擷取環境的,並將其記錄到磁碟。 您可以使用此模式來偵錯特定類型的問題,例如無法預測找出錨點。 僅啟用診斷記錄以重現特定問題。 然後加以停用。 當您正常執行應用程式時,請勿啟用診斷。

在與 Microsoft 的支援互動期間,Microsoft 代表可能會詢問您是否願意提交診斷套件組合以進行進一步調查。 在此情況下,您可能會決定啟用診斷並重現問題,以提交診斷套件組合。

如果您向 Microsoft 提交診斷記錄,而無 Microsoft 代表事先通知,則提交將不會獲得解答。

下列各節說明如何啟用診斷模式,以及如何將診斷記錄提交至 Microsoft。

啟用診斷記錄

當您啟用診斷記錄的工作階段時,工作階段中的所有作業都會在本機檔案系統中具有對應的診斷記錄。 記錄期間,環境的映像會儲存至磁碟。

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

提交診斷套件組合

下列程式碼片段示範如何將診斷套件組合提交至 Microsoft。 當您啟用診斷之後,此套件組合將包含工作階段所擷取的環境映像。

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

診斷套件組合的各部分

診斷套件組合可能包含下列資訊:

  • 主要畫面格映像:啟用診斷時,在工作階段期間擷取的環境映像。
  • 記錄:記錄執行階段所記錄的事件。
  • 工作階段中繼資料:識別工作階段的中繼資料。