class Diagnostics::Logging::MemoryLogger

Класс со статическими методами для управления ведением журнала пакета SDK в буфере в памяти. Включение ведения журнала при запуске сценария пакета SDK службы "Речь" предоставляет подробные сведения из основных собственных компонентов пакета SDK. Если вы сообщаете о проблеме в корпорацию Майкрософт, вам может быть предложено предоставить журналы, которые помогут корпорации Майкрософт диагностировать проблему. Приложение не должно зависеть от конкретных строк журнала, так как они могут изменяться от одного выпуска пакета SDK к другому без предварительного уведомления. MemoryLogger предназначен для случаев, когда требуется получить доступ к журналам, которые были приняты в течение короткого периода времени, прежде чем произойдет непредвиденное событие. Например, если вы используете Распознаватель речи, может потребоваться создать дамп MemoryLogger после получения события, указывающего, что распознавание было отменено из-за некоторой ошибки. Размер буфера памяти фиксирован в 2 МБ и не может быть изменен. Это "кольцевой" буфер, то есть новые строки журнала, записанные вместо самых старых из них в буфере. Добавлено в версии 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 Максимальный уровень детализации, который будет захватывать средство ведения журнала.