2012-03-08 15 views
13

¿Por qué debería usar Event Tracing for Windows (ETW) sobre el estándar .NET EventLog class, y viceversa? ¿Saber que usaremos bastantes contadores de rendimiento afectará la decisión?¿Por qué usar ETW sobre EventLog y viceversa?

Lo que sé hasta ahora:

  1. ETW debe perform much better.
  2. ETW es mucho más trabajo para integrarse con (por ejemplo .NET Event Tracing for Windows)
  3. Al seleccionar uno de los canales estándar en ETW (por ejemplo aplicación, el sistema), la misma información está disponible en el registro de eventos.

Respuesta

13

ETW tiene muchas ventajas.

Primero, en .NET 4.5, será mucho más fácil de usar. La clase EventSource en 4.5 simplifica drásticamente la creación de eventos desde dentro de su código.

Sin embargo, incluso sin esto, ETW tiene algunas ventajas enormes, aunque normalmente funciona de manera diferente y, como tal, tiene un propósito diferente al de EventLog.

EventLog está realmente diseñado para el registro. ETW, por otro lado, le permite rastrear el progreso de su aplicación en el contexto del sistema como un todo. Cuando comienza a recopilar eventos ETW, los recopila en base a un sistema, lo que le permite no solo rastrear su aplicación, sino ver qué está sucediendo en relación con el sistema mientras se está ejecutando. Mediante el uso de una herramienta como PerfView, puede ver cómo funcionan porciones específicas de su aplicación y al mismo tiempo ver lo que está sucediendo con el marco y Windows en general.

4

Este MSDN article hace un buen trabajo al describir los beneficios de ETW.

Aunque EventSource proporciona una gran manera idiomática para que los desarrolladores .NET creen eventos ETW, no incluye ninguno de los destinos familiares para el registro (archivo continuo, base de datos, etc.). ETW utiliza sus propios destinos, como archivos .etl, y utiliza diferentes herramientas para analizar y analizar datos de registro.

La nueva Semantic Logging Application Block facilita la incorporación de la funcionalidad EventSource y la gestión del comportamiento de registro de su sistema. Permite heredar la mayor parte de la estructura de ETW, incluidos los metadatos y la carga del evento, para escribir mensajes de registro en múltiples destinos, como bases de datos, archivos continuos o almacenamiento de tablas de Windows Azure, y para controlar los registros de su sistema estableciendo filtros y verbosidad de registro.

Cuestiones relacionadas