Freigeben über


Schreiben eines Fehler- oder Warnungsprotokolleintrags

Das folgende Beispiel zeigt, wie eine Anwendung in der Regel SetupWriteTextLog aufrufen kann, um einen Fehler- oder Warnungseintrag in ein SetupAPI-Textprotokoll zu schreiben. Wenn ein Ereignis jedoch 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 Fehlertypen.

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 und gibt die folgenden Parameterwerte an:

  • LogToken ist auf einen Protokolltokenwert festgelegt, der entweder durch aufrufen von SetupGetThreadLogToken abgerufen wurde oder einer der systemdefinierte Protokolltokenwerte ist, die in den Protokolltoken beschrieben werden.

  • 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 ist auf ein bitweises OR mit TXTLOG_ERROR und TXTLOG_TIMESTAMP festgelegt. In diesem Beispiel wird die Einzugstiefe nicht geändert, und die aktuelle Einzugstiefe wurde zuvor auf fünf Monospace-Texträume festgelegt. Informationen zum Ändern der Einzugstiefe finden Sie unter Schreiben von eingezogenen Protokolleinträgen. Ereignisebenen werden im Thema Festlegen der Ereignisebene für ein Textprotokoll beschrieben.

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

  • Die durch Trennzeichen getrennte Liste enthält 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 ist, erstellt dieser Code einen Eintrag im Textprotokoll, der wie folgt formatiert wird:

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

Das entry_prefix Feld "!!! " gibt an, dass es sich bei dem Protokolleintrag um eine Fehlermeldung handelt.

Protokollieren einer Warnmeldung

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

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

Das entry_prefix Feld des Protokolleintrags lautet "! ", was angibt, dass dies eine Warnmeldung ist, im Gegensatz zu "!!! ", was auf eine Fehlermeldung hinweisen würde.