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.