Schreiben eines Fehler- oder Warnprotokolleintrags

Das folgende Beispiel zeigt, wie eine Anwendung SetupWriteTextLog normalerweise aufruft, um einen Fehler- oder Warneintrag in ein SetupAPI-Textprotokoll zu schreiben. Wenn jedoch ein Ereignis einem SetupAPI-spezifischen Fehler oder einem Win32-Fehler zugeordnet ist, kann eine Anwendung stattdessen SetupWriteTextLogError aufrufen. SetupWriteTextLogError erleichtert die Protokollierung und Interpretation von Informationen zu diesen Arten von Fehlern.

Informationen zum Aufrufen von SetupWriteTextLog zum Protokollieren einer Fehlermeldung finden Sie unter Protokollierung einer Fehlermeldung und informationen zum Aufrufen von SetupWriteTextLog zum Protokollieren einer Warnmeldung finden Sie unter Protokollierung einer Warnmeldung.

Protokollieren einer Fehlermeldung

In diesem Beispiel ruft die Anwendung SetupWriteTextLog auf, wobei die folgenden Parameterwerte angegeben werden:

  • LogToken wird auf einen Protokolltokenwert festgelegt, der entweder durch Aufrufen von SetupGetThreadLogToken abgerufen wurde oder einer der systemdefinierten Protokolltokenwerte ist, die im Abschnitt Log Tokens beschrieben werden.

  • Die Kategorie ist auf TXTLOG_VENDOR festgelegt, was angibt, dass der Protokolleintrag von einer vom Anbieter bereitgestellten Anwendung erfolgt. Ereigniskategorien werden unter Aktivieren von Ereigniskategorien für ein Textprotokoll beschrieben.

  • Flags werden auf ein bitweises OR von TXTLOG_ERROR und TXTLOG_TIMESTAMP festgelegt. In diesem Beispiel wird die Einzugstiefe nicht geändert, und die aktuelle Einzugstiefe wurde zuvor auf fünf Leerzeichen in Monospace-Schrift festgelegt. Informationen zum Ändern der Einzugstiefe finden Sie unter Schreiben von eingezogenen Protokolleinträgen. Ereignisebenen werden im Hilfethema „Festlegen der Ereignisebene für ein Textprotokoll“ beschrieben.

  • MessageStr ist auf TEXT("Anwendungsfehler (%d)") festgelegt.

  • Die durch Kommas getrennte Liste liefert die Variable ErrorCode.

Der folgende Code ruft SetupWriteTextLog auf, um einen Protokolleintrag für dieses Beispiel zu schreiben:

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

Wenn die TXTLOG_VENDOR Ereigniskategorie aktiviert ist und die TXTLOG_ERROR Ereignisebene für das Textprotokoll festgelegt wird, erstellt dieser Code einen Eintrag im Textprotokoll, der wie folgt formatiert würde:

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

Das Feld entry_prefix "!!! " gibt an, dass der Protokolleintrag eine Fehlermeldung ist.

Protokollieren einer Warnmeldung

Das Protokollieren einer Warnmeldung ist fast identisch mit der Protokollierung einer Fehlermeldung. Der Unterschied liegt in den Einstellungen für die Ereignisebene. Legen Sie Flags auf TXTLOG_WARNING anstelle von TXTLOG_ERROR fest. Wenn SetupWriteTextLog wie in der Protokollierung einer Fehlermeldung beschrieben aufgerufen wird, mit der Ausnahme, dass Flags auf ein bitweises OR von TXTLOG_WARNING und TXTLOG_TIMESTAMP festgelegt sind, schreibt SetupWriteTextLog den folgenden Protokolleintrag:

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

Das entry_prefix Feld des Protokolleintrags lautet "! ", was bedeutet, dass dies eine Warnmeldung ist, im Gegensatz zu "!!! ", was auf eine Fehlermeldung hinweist.