Compartilhar via


Gravando uma entrada de log de erro ou aviso

O exemplo a seguir mostra como um aplicativo normalmente pode chamar SetupWriteTextLog para gravar uma entrada de erro ou aviso em um log de texto SetupAPI. No entanto, se um evento estiver associado a um erro específico de SetupAPI ou a um erro win32, um aplicativo poderá chamar SetupWriteTextLogError . SetupWriteTextLogError facilita o registro em log e a interpretação de informações sobre esses tipos de erros.

Para obter informações sobre como chamar SetupWriteTextLog para registrar uma mensagem de erro, consulte Registrar em log uma mensagem de erro e para obter informações sobre como chamar SetupWriteTextLog para registrar uma mensagem de aviso, consulte Registrando uma mensagem de aviso.

Registrar uma mensagem de erro em log

Neste exemplo, o aplicativo chama SetupWriteTextLog, fornecendo os seguintes valores de parâmetro:

  • LogToken é definido como um valor de token de log que foi obtido chamando SetupGetThreadLogToken ou é um dos valores de token de log definidos pelo sistema que são descritos nos Tokens de Log.

  • A categoria é definida como TXTLOG_VENDOR, o que indica que a entrada de log é feita por um aplicativo fornecido pelo fornecedor. As categorias de evento são descritas em Habilitando categorias de evento para um log de texto.

  • Os sinalizadores são definidos como um OR bit a bit de TXTLOG_ERROR e TXTLOG_TIMESTAMP. Neste exemplo, a profundidade do recuo não é alterada e a profundidade de recuo atual foi definida anteriormente como cinco espaços de texto de monospace. Para obter informações sobre como alterar a profundidade do recuo, consulte Gravando entradas de log recuadas. Os níveis de evento são descritos no tópico Definindo o nível de evento para um log de texto .

  • MessageStr é definido como TEXT("Application Error (%d)").

  • A lista separada por vírgulas fornece a variável ErrorCode.

O código a seguir chama SetupWriteTextLog para gravar uma entrada de log para este exemplo:

//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_ERROR | TXTLOG_TIMESTAMP;
DWORD ErrorCode = 1111; // An error code value

SetupWriteTextLog(LogToken, Category, Flags, TEXT("Application Error (%d)"),ErrorCode);

Se a categoria de evento TXTLOG_VENDOR estiver habilitada e o nível de evento TXTLOG_ERROR for definido para o log de texto, esse código criará uma entrada no log de texto que seria formatada da seguinte maneira:

!!!  2005/02/13 22:06:28.109:    :  Application error (1111) 

O campo entry_prefix "!!! " indica que a entrada de log é uma mensagem de erro.

Registrar uma mensagem de aviso em log

Registrar uma mensagem de aviso é quase idêntico ao registro em log de uma mensagem de erro. A diferença são as configurações para o nível de evento. Defina Sinalizadores como TXTLOG_WARNING em vez de TXTLOG_ERROR. Se SetupWriteTextLog for chamado conforme descrito em Registrar em log uma mensagem de erro, exceto que Flags está definido como um OR bit a bit de TXTLOG_WARNING e TXTLOG_TIMESTAMP, SetupWriteTextLog gravará a seguinte entrada de log:

!  2005/02/13 22:06:28.109:    :  Application error (1111) 

O campo entry_prefix da entrada de log é "! ", que indica que esta é uma mensagem de aviso, em vez de "!!! ", que indicaria uma mensagem de erro.