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