Ricerca per categorie aggiungere un prefisso e un suffisso a un messaggio di traccia?
È possibile usare un blocco di configurazione del preprocessore WPP per aggiungere dati ai messaggi di traccia.
Il blocco di configurazione WPP viene definito dalle istruzioni di configurazione begin_wpp e end_wpp inserite nel codice sorgente.
configurazione begin_wpp
...
blocco di configurazione
...
end_wpp
Se si inserisce dati di configurazione in un file di intestazione, specificare il nome del file di intestazione nelle proprietà del progetto (per traccia WPP). In Opzioni file nella pagina delle proprietà specificare il file di configurazione analisi. Per altre informazioni, vedere Preprocessore WPP.
Sintassi dei blocchi di configurazione
USEPREFIX (Function_Name, "Format string");
Definisce un prefisso di stringa di formato da utilizzare quando viene registrato l'evento. Il primo parametro è il nome della funzione a cui si applica questo prefisso. Il secondo parametro è la stringa di formato da usare. Per usare il valore predefinito, specificare %! STDPREFIX!. Il prefisso del messaggio di traccia predefinito specifica il numero cpu, l'ID processo, l'ID del thread, il timestamp nel formato UTC (Coordinated Universal Time) e il nome descrittivo del GUID del controllo.
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
FUNC Function_Name{args}(EXP);
Definisce il nome e la firma della funzione di traccia. Le parentesi graffe { } vengono usate per definire i valori impostati per la funzione. Nell'esempio seguente la funzione accetta un argomento e nessuna stringa di formato e level è impostata su ERROR.
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
USESUFFIX (Function_Name, "Format string");
Definisce il suffisso della stringa di formato da usare quando viene registrato l'evento. Il primo parametro è il nome della funzione a cui si applica questo suffisso. Il secondo parametro è la stringa di formato da usare. È possibile usare nomi di variabile nel codice.
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
Blocco di configurazione di esempio
Nell'esempio seguente viene definita una macro di traccia che usa il prefisso della stringa di formato e il suffisso. Se si definisce una macro di traccia, è necessario definire anche macro per selezionare il logger e verificare se l'evento deve essere registrato.
//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp
//
// The next two macros are for checking if the event should be logged, and for
// choosing the logger handle to use when calling the ETW trace API
//
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_FLAG_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_FLAG_LOGGER(LEVEL)
Risultati di traccia di esempio
[0]0F78.0460::06/24/2006-15:54:54.880 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)