Compartir a través de


Escribir una entrada de registro de errores o advertencias

En el ejemplo siguiente se muestra cómo una aplicación normalmente podría llamar a SetupWriteTextLog para escribir una entrada de error o advertencia en un registro de texto setupAPI. Sin embargo, si un evento está asociado a un error específico de SetupAPI o un error win32, una aplicación puede llamar a SetupWriteTextLogError en su lugar. SetupWriteTextLogError facilita el registro e interpretación de información sobre estos tipos de errores.

Para obtener información sobre cómo llamar a SetupWriteTextLog para registrar un mensaje de error, consulte Registro de un mensaje de error y para obtener información sobre cómo llamar a SetupWriteTextLog para registrar un mensaje de advertencia, consulte Registro de un mensaje de advertencia.

Registro de un mensaje de error

En este ejemplo, la aplicación llama a SetupWriteTextLog, proporcionando los siguientes valores de parámetro:

  • LogToken se establece en un valor de token de registro que se obtuvo mediante una llamada a SetupGetThreadLogToken o es uno de los valores de token de registro definidos por el sistema que se describen en los tokens de registro.

  • La categoría se establece en TXTLOG_VENDOR, lo que indica que una aplicación proporcionada por el proveedor realiza la entrada de registro. Las categorías de eventos se describen en Habilitación de categorías de eventos para un registro de texto.

  • Las marcas se establecen en un OR bit a bit de TXTLOG_ERROR y TXTLOG_TIMESTAMP. En este ejemplo, la profundidad de sangría no cambia y la profundidad de sangría actual se estableció anteriormente en cinco espacios de texto monoespacio. Para obtener información sobre cómo cambiar la profundidad de sangría, vea Escribir entradas de registro con sangría. Los niveles de evento se describen en el tema Establecimiento del nivel de evento para un registro de texto .

  • MessageStr se establece en TEXT("Error de aplicación (%d)").

  • La lista separada por comas proporciona la variable ErrorCode.

El código siguiente llama a SetupWriteTextLog para escribir una entrada de registro para este ejemplo:

//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);

Si la categoría de eventos de TXTLOG_VENDOR está habilitada y el nivel de evento TXTLOG_ERROR se establece para el registro de texto, este código crearía una entrada en el registro de texto con el siguiente formato:

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

Campo entry_prefix "!!! " indica que la entrada del registro es un mensaje de error.

Registro de un mensaje de advertencia

El registro de un mensaje de advertencia es casi idéntico al registro de un mensaje de error. La diferencia es la configuración del nivel de evento. Establezca Marcas en TXTLOG_WARNING en lugar de TXTLOG_ERROR. Si se llama a SetupWriteTextLog como se describe en Registro de un mensaje de error, excepto que Flags se establece en un OR bit a bit de TXTLOG_WARNING y TXTLOG_TIMESTAMP, SetupWriteTextLog escribiría la siguiente entrada de registro:

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

El campo entry_prefix de la entrada de registro es "! ", que indica que se trata de un mensaje de advertencia, en lugar de "!!! ", que indicaría un mensaje de error.