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