Partilhar via


classe Diagnostics::Logging::MemoryLogger

Classe com métodos estáticos para controlar o login do SDK em um buffer na memória. Ativar o registro em log durante a execução do cenário do SDK de fala fornece informações detalhadas dos principais componentes nativos do SDK. Se comunicar um problema à Microsoft, poderá ser-lhe pedido que forneça registos para ajudar a Microsoft a diagnosticar o problema. Seu aplicativo não deve depender de cadeias de caracteres de log específicas, pois elas podem mudar de uma versão do SDK para outra sem aviso prévio. O MemoryLogger foi projetado para o caso em que você deseja obter acesso a logs que foram feitos em uma curta duração antes que algum evento inesperado aconteça. Por exemplo, se você estiver executando um Reconhecimento de Fala, talvez queira despejar o MemoryLogger depois de obter um evento indicando que o reconhecimento foi cancelado devido a algum erro. O tamanho do buffer de memória é fixado em 2MB e não pode ser alterado. Este é um buffer de "anel", ou seja, novas cadeias de caracteres de log escritas substituem as mais antigas no buffer. Adicionado na versão 1.20.0.

O registro de memória é uma construção de todo o processo. Isso significa que, se (por exemplo) você tiver vários objetos de reconhecimento de fala em execução em paralelo, haverá um buffer de memória contendo logs intercalados de todos os reconhecedores. Não é possível obter logs separados para cada reconhecedor.

Membros

Início

Sintaxe: public inline static void Start ( );

Inicia o login no buffer de memória interna.

Parar

Sintaxe: public inline static void Stop ( );

Para de fazer login no buffer de memória interna.

SetFilters

Sintaxe: public inline static void SetFilters ( std::initializer_list< std::string > filters );

Define ou limpa filtros para registro de memória. Depois que os filtros forem definidos, o registrador de memória só será atualizado com cadeias de caracteres de log contendo pelo menos uma das cadeias de caracteres especificadas pelos filtros. A correspondência diferencia maiúsculas de minúsculas.

Parâmetros

  • filters Opcional. Filtros a utilizar ou uma lista vazia para remover filtros definidos anteriormente.

Despejo

Sintaxe: public inline static void Dump ( const SPXSTRING & filePath );

Grava o conteúdo de todo o buffer de memória no arquivo especificado. Ele não impede que outros threads do SDK continuem a fazer login no buffer.

Parâmetros

  • filePath Caminho para um arquivo de log no disco local.

Isso não redefine (limpa) o buffer de memória.

Despejo

Sintaxe: public inline static void Dump ( std::ostream & outStream );

Grava o conteúdo de todo o buffer de memória em um objeto que implementa std::ostream. Por exemplo, std::cout (para saída de console). Ele não impede que outros threads do SDK continuem a fazer login no buffer.

Parâmetros

  • outStream objeto std::ostream para gravar.

Isso não redefine (limpa) o buffer de memória.

Despejo

Sintaxe: public inline static std::vector< std::string > Dump ( );

Retorna o conteúdo de todo o buffer de memória como um vetor de cadeias de caracteres. Ele não impede que outros threads do SDK continuem a fazer login no buffer.

Devoluções

Um vetor com o conteúdo do buffer de memória copiado para ele.

Isso não redefine (limpa) o buffer de memória.

SetLevel

Sintaxe: public inline static void SetLevel ( Level level );

Define o nível das mensagens a serem capturadas pelo registrador.

Parâmetros

  • level Nível máximo de detalhe a ser capturado pelo registrador.