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);
}
診斷套件組合的各部分
診斷套件組合可能包含下列資訊:
- 主要畫面格映像:啟用診斷時,在工作階段期間擷取的環境映像。
- 記錄:記錄執行階段所記錄的事件。
- 工作階段中繼資料:識別工作階段的中繼資料。