类 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 ( );

停止登录到内部内存缓冲区。

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 记录器要捕获的最大详细信息级别。