Scrittura di una voce del log degli errori o degli avvisi

Nell'esempio seguente viene illustrato come un'applicazione potrebbe in genere chiamare SetupWriteTextLog per scrivere una voce di errore o di avviso in un log di testo SetupAPI. Tuttavia, se un evento è associato a un errore specifico di SetupAPI o a un errore Win32, un'applicazione può invece chiamare SetupWriteTextLogError . SetupWriteTextLogError facilita la registrazione e l'interpretazione di informazioni su questi tipi di errori.

Per informazioni sulla chiamata a SetupWriteTextLog per registrare un messaggio di errore, vedere Registrazione di un messaggio di errore e per informazioni sulla chiamata a SetupWriteTextLog per registrare un messaggio di avviso, vedere Registrazione di un messaggio di avviso.

Registrare un messaggio di errore

In questo esempio l'applicazione chiama SetupWriteTextLog, specificando i valori dei parametri seguenti:

  • LogToken è impostato su un valore del token di log che è stato ottenuto chiamando SetupGetThreadLogToken oppure è uno dei valori del token di log definiti dal sistema descritti nei Token di log.

  • La categoria è impostata su TXTLOG_VENDOR, che indica che la voce di log viene effettuata da un'applicazione fornita dal fornitore. Le categorie di eventi sono descritte in Abilitazione delle categorie di eventi per un log di testo.

  • Flags è impostato su un OR bit per bit di TXTLOG_ERROR e TXTLOG_TIMESTAMP. In questo esempio, la profondità del rientro non viene modificata e la profondità del rientro corrente è stata precedentemente impostata su cinque spazi di testo monospace. Per informazioni su come modificare la profondità del rientro, consulta Scrivere voci di log rientrate. I livelli di evento sono descritti nell'argomento Impostazione del livello di evento per un log di testo .

  • MessageStr è impostato su TEXT("Errore dell'applicazione (%d)").

  • L'elenco delimitato da virgole fornisce la variabile ErrorCode.

Il codice seguente chiama SetupWriteTextLog per scrivere una voce di log per questo esempio:

//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 la categoria di eventi TXTLOG_VENDOR è abilitata e il livello di evento TXTLOG_ERROR è impostato per il log di testo, questo codice creerebbe una voce nel log di testo che verrebbe formattata come segue:

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

Il campo entry_prefix "!!!" " indica che la voce di log è un messaggio di errore.

Registrazione di un messaggio di avviso

La registrazione di un messaggio di avviso è quasi identica alla registrazione di un messaggio di errore. La differenza è rappresentata dalle impostazioni per il livello di evento. Impostare Flag su TXTLOG_WARNING anziché TXTLOG_ERROR. Se SetupWriteTextLog viene chiamato come descritto in Registrazione di un messaggio di errore, ad eccezione del fatto che Flags è impostato su un OR bit per bit di TXTLOG_WARNING e TXTLOG_TIMESTAMP, SetupWriteTextLog scriverà la voce di log seguente:

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

Il campo entry_prefix della voce di log è "! "!", che indica che si tratta di un messaggio di avviso, invece di "!!!" ", che indicherebbe un messaggio di errore.