Scrittura di una voce di log di errore o avviso
Nell'esempio seguente viene illustrato come un'applicazione potrebbe in genere chiamare SetupWriteTextLog per scrivere un errore o una voce 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.
Registrazione di un messaggio di errore
In questo esempio l'applicazione chiama SetupWriteTextLog, fornendo i valori dei parametri seguenti:
LogToken è impostato su un valore del token di log ottenuto chiamando SetupGetThreadLogToken o è 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 del 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.
I flag sono impostati su un OR bit per bit di TXTLOG_ERROR e TXTLOG_TIMESTAMP. In questo esempio la profondità di rientro non viene modificata e la profondità di rientro corrente è stata impostata in precedenza su cinque spazi di testo monospace. Per informazioni su come modificare la profondità di rientro, vedere Scrittura di voci di log con rientro. I livelli di evento sono descritti nell'argomento Impostazione livello evento per un log di testo .
MessageStr è impostato su TEXT("Errore 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 verrà formattata come segue:
!!! 2005/02/13 22:06:28.109: : Application error (1111)
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 è le 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 Flag è 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, anziché "!!! , che indica un messaggio di errore.