Partager via


Écriture d’une entrée de journal d’erreur ou d’avertissement

L’exemple suivant montre comment une application peut généralement appeler SetupWriteTextLog pour écrire une entrée d’erreur ou d’avertissement dans un journal de texte SetupAPI. Toutefois, si un événement est associé à une erreur spécifique à SetupAPI ou à une erreur Win32, une application peut appeler SetupWriteTextLogError à la place. SetupWriteTextLogError facilite la journalisation et l’interprétation des informations sur ces types d’erreurs.

Pour plus d’informations sur l’appel de SetupWriteTextLog pour enregistrer un message d’erreur, consultez Journalisation d’un message d’erreur et pour plus d’informations sur l’appel de SetupWriteTextLog pour enregistrer un message d’avertissement, consultez Journalisation d’un message d’avertissement.

Journalisation d’un message d’erreur

Dans cet exemple, l’application appelle SetupWriteTextLog, en fournissant les valeurs de paramètre suivantes :

  • LogToken est défini sur une valeur de jeton de journal qui a été obtenue en appelant SetupGetThreadLogToken ou est l’une des valeurs de jeton de journal définies par le système qui sont décrites dans les jetons de journal.

  • Category est défini sur TXTLOG_VENDOR, ce qui indique que l’entrée du journal est effectuée par une application fournie par le fournisseur. Les catégories d’événements sont décrites dans Activation des catégories d’événements pour un journal texte.

  • Flags est défini sur un OR au niveau du bit de TXTLOG_ERROR et TXTLOG_TIMESTAMP. Dans cet exemple, la profondeur de mise en retrait n’est pas modifiée et la profondeur de mise en retrait actuelle a été précédemment définie sur cinq espaces de texte monospaces. Pour plus d’informations sur la modification de la profondeur de mise en retrait, consultez Écriture d’entrées de journal mises en retrait. Les niveaux d’événements sont décrits dans la rubrique Définition du niveau d’événement pour un journal de texte .

  • MessageStr est défini sur TEXT(« Erreur d’application (%d) »).

  • La liste séparée par des virgules fournit la variable ErrorCode.

Le code suivant appelle SetupWriteTextLog pour écrire une entrée de journal pour cet exemple :

//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 catégorie d’événements TXTLOG_VENDOR est activée et que le niveau d’événement TXTLOG_ERROR est défini pour le journal texte, ce code crée une entrée dans le journal texte qui sera mise en forme comme suit :

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

Champ entry_prefix « !!! » indique que l’entrée de journal est un message d’erreur.

Journalisation d’un message d’avertissement

La journalisation d’un message d’avertissement est presque identique à la journalisation d’un message d’erreur. La différence réside dans les paramètres du niveau de l’événement. Définissez Indicateurs sur TXTLOG_WARNING au lieu de TXTLOG_ERROR. Si SetupWriteTextLog est appelé comme décrit dans Journalisation d’un message d’erreur, sauf que Flags a la valeur OR au niveau du bit de TXTLOG_WARNING et TXTLOG_TIMESTAMP, SetupWriteTextLog écrit l’entrée de journal suivante :

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

Le champ entry_prefix de l’entrée de journal est « ! », ce qui indique qu’il s’agit d’un message d’avertissement, par opposition à « !!! », ce qui indiquerait un message d’erreur.