Inserimento di dati XML nel registro eventi di Windows
-
06-07-2019 - |
Domanda
Come posso scrivere i dati XML nel registro eventi di Windows?
Ho notato che esiste un modo per inserire XML nel registro eventi di Windows (e non semplicemente inserendolo nella descrizione). L'effetto è che ricevi solo il tuo messaggio di descrizione nella vista Generale
su Windows Vista. Puoi vedere i tuoi dati XML nella vista Dettagli
.
Se si seleziona il pulsante di opzione Friendly
, viene visualizzato nel nodo Dati evento
. Se selezioni la vista XML, puoi vedere l'XML.
Ho pensato che l'array di byte rawData nel metodo EventLog.WriteEntry ()
mi avrebbe permesso di farlo. Ho provato a inserire l'output di XMLWriter in esso. Ciò ha inserito i dati nel registro eventi, ma sono visualizzati come binari anziché XML.
Soluzione
A meno che non mi sbagli, per scrivere XML nel registro eventi Crimson / Vista dovrai creare e registrare un manifest che ti fornirà i canali e gli eventi appropriati. Quindi devi compilare il manifest usando Compilatore di messaggi (mc.exe) in Windows SDK .
Quindi, se si desidera accedere da C #, si desidera creare un provider gestito per racchiudere l'API di registrazione degli eventi. Questo è un po 'più difficile perché dovrai usare PInvoke per accedere all'API.
Ci sono post sul blog su come eseguire l'intero processo qui .
Altri suggerimenti
Hai un campione in Windows SDK (versione 6.1) chiamato EventProvider.
È un provider C # (ha bisogno di Vista e funziona) che utilizza la nuova API del registro eventi (AKA crimson).
Questo esempio mostra come aggiungere dati personalizzati (quantità di altre cose).