類別 Diagnostics::Logging::MemoryLogger

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

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

成員

開始

語法:public inline static void Start ( );

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

停

語法:public inline static void Stop ( );

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

設定過濾器

語法: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 線程繼續登入緩衝區。

退貨

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

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

設定等級

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

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

參數

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