2012-03-08 13 views
13

Perché dovrei usare Event Tracing for Windows (ETW) sullo standard .NET EventLog class e viceversa? Sapere che useremo un buon numero di contatori delle prestazioni influirà sulla decisione?Perché utilizzare ETW su EventLog e viceversa?

Quello che so finora:

  1. ETW dovrebbe perform much better.
  2. ETW è molto più lavoro da integrare con (ad esempio .NET Event Tracing for Windows)
  3. Selezionando uno dei canali standard in ETW (ad esempio Applicazione, Sistema), le stesse informazioni sono disponibili nel registro eventi.

risposta

13

ETW ha molti vantaggi.

Innanzitutto, in .NET 4.5, sarà molto più semplice da utilizzare. La classe EventSource in 4.5 semplifica notevolmente la creazione di eventi dal codice.

Tuttavia, anche senza questo, ETW presenta alcuni vantaggi enormi, sebbene in genere funzioni in modo diverso e, in quanto tale, abbia uno scopo diverso rispetto a EventLog.

EventLog è progettato per la registrazione. ETW, d'altra parte, consente di tracciare i progressi dell'applicazione nel contesto del sistema nel suo complesso. Quando inizi a raccogliere eventi ETW, li raccogli su base di sistema, che ti consente non solo di tracciare la tua applicazione, ma di vedere cosa succede in relazione al sistema mentre è in esecuzione. Utilizzando uno strumento come PerfView, è possibile vedere come operano le parti specifiche dell'applicazione mentre si osserva contemporaneamente ciò che accade con il framework e Windows nel suo complesso.

4

Questo MSDN article fa un buon lavoro descrivendo i vantaggi di ETW.

Mentre EventSource fornisce un ottimo modo idiomatico per gli sviluppatori .NET di creare eventi ETW, non viene fornito con nessuna delle destinazioni familiari per la registrazione (rolling file, database, ecc.). ETW utilizza le proprie destinazioni come i file .etl e utilizza diversi strumenti per analizzare e analizzare i dati del registro.

Il nuovo Semantic Logging Application Block semplifica l'integrazione della funzionalità EventSource e la gestione del comportamento di registrazione del sistema. Permette di ereditare la maggior parte della struttura dalla pipeline ETW, inclusi metadati e payload degli eventi, per scrivere messaggi di log su più destinazioni, come database, file mobili o memoria della tabella Windows Azure, e per controllare cosa registri il sistema impostando filtri e verbosità di registrazione.

Problemi correlati