Share via


類別 Diagnostics::Logging::MemoryLogger

具有靜態方法的類別,可控制 SDK 登入記憶體內部緩衝區。 在執行語音 SDK 案例時開啟記錄,提供 SDK 核心原生元件的詳細資訊。 如果您向 Microsoft 回報問題,系統可能會要求您提供記錄,以協助 Microsoft 診斷問題。 您的應用程式不應該相依于特定記錄字串,因為它們可能會從某個 SDK 版本變更為另一個 SDK 版本,而不會通知。 MemoryLogger 是針對您想要在發生非預期事件之前,在短時間內取得記錄的存取權所設計。 例如,如果您執行語音辨識器,您可能會想要在收到指出因為某些錯誤而取消辨識的事件之後傾印 MemoryLogger。 記憶體緩衝區的大小固定在 2MB,而且無法變更。 這是「環形」緩衝區,也就是說,寫入的新記錄字串會取代緩衝區中最舊的記錄字串。 已在 1.20.0 版中新增。

記憶體記錄是整個進程建構。 這表示,如果 (例如,) 有多個以平行方式執行的語音辨識器物件,則會有一個記憶體緩衝區包含來自所有辨識器的交錯記錄。 您無法為每個辨識器取得個別的記錄。

成員

開始

語法: public inline static void Start ( );

開始登入內部記憶體緩衝區。

Stop

語法: public inline static void Stop ( );

停止登入內部記憶體緩衝區。

SetFilters

語法: public inline static void SetFilters ( std::initializer_list< std::string > filters );

設定或清除記憶體記錄的篩選。 設定篩選之後,記憶體記錄器只會使用至少包含篩選所指定之字串的記錄字串來更新。 比對會區分大小寫。

參數

  • filters 選擇項。 要使用的篩選,或移除先前設定篩選的空白清單。

轉 儲

語法: public inline static void Dump ( const SPXSTRING & filePath );

將整個記憶體緩衝區的內容寫入指定的檔案。 它不會封鎖其他 SDK 執行緒繼續登入緩衝區。

參數

  • filePath 本機磁片上記錄檔的路徑。

這不會重設 (記憶體緩衝區) 清除。

轉 儲

語法: public inline static void Dump ( std::ostream & outStream );

將整個記憶體緩衝區的內容寫入實作 std::ostream 的物件。 例如,主控台輸出) 的 std::cout (。 它不會封鎖其他 SDK 執行緒繼續登入緩衝區。

參數

  • outStream 要寫入的 std::ostream 物件。

這不會重設 (記憶體緩衝區) 清除。

轉 儲

語法: public inline static std::vector< std::string > Dump ( );

傳回整個記憶體緩衝區的內容做為字串的向量。 它不會封鎖其他 SDK 執行緒繼續登入緩衝區。

傳回

向量,其中已複製記憶體緩衝區的內容。

這不會重設 (記憶體緩衝區) 清除。

SetLevel

語法: public inline static void SetLevel ( Level level );

設定記錄器要擷取之訊息的層級。

參數

  • level 記錄器要擷取的詳細資料層級上限。