2012-03-08 5 views
13

Event Tracing for Windows (ETW)을 표준 .NET EventLog class 이상으로 사용해야하는 이유는 무엇입니까? 우리가 꽤 많은 성능 카운터를 사용한다는 것을 알고 결정에 영향을 줍니까? 내가 지금까지 알고 무엇EventLog에서 ETW를 사용하는 이유는 무엇입니까?

:

  1. ETW perform much better을해야한다.
  2. ETW가 ETW에서 표준 채널들 중 하나 (예를 들어, 응용 프로그램, 시스템)을 선택함으로써 (예컨대 .NET Event Tracing for Windows)
  3. 통합하는 많은 작품, 동일한 정보가 이벤트 로그에서 유효하다.

답변

13

ETW에는 많은 이점이 있습니다.

먼저 .NET 4.5에서 사용하는 것이 훨씬 간단합니다. 4.5에서 EventSource 클래스를 사용하면 코드 내에서 이벤트를 간단하게 만들 수 있습니다.

비록 이것이 없어도 ETW는 일반적으로 다르게 작동하지만 EventLog와는 다른 목적을 제공하지만 몇 가지 큰 이점이 있습니다.

EventLog은 실제로 로깅 용으로 설계되었습니다. 한편, ETW는 시스템의 컨텍스트에서 응용 프로그램의 진행률을 추적 할 수 있습니다.. ETW 이벤트 수집을 시작하면 시스템 기반으로 이벤트를 수집하므로 응용 프로그램을 추적 할뿐만 아니라 실행중인 시스템과 관련하여 어떤 일이 발생하는지 확인할 수 있습니다. PerfView과 같은 도구를 사용하면 응용 프로그램의 특정 부분이 어떻게 작동 하는지를 볼 수 있으며 동시에 프레임 워크와 Windows 전체에서 일어나는 일을 동시에 볼 수 있습니다.

4

MSDN article은 ETW의 이점을 잘 설명합니다.

EventSource는 .NET 개발자가 ETW 이벤트를 작성하는 데 관용적 인 방법을 제공하지만 로깅 (롤링 파일, 데이터베이스 등)에 익숙한 대상은 제공되지 않습니다. ETW는 .etl 파일과 같은 자체 대상을 사용하고 로그 데이터를 구문 분석하고 분석하는 데 다양한 도구를 사용합니다.

새로운 Semantic Logging Application Block을 사용하면 EventSource 기능을보다 쉽게 ​​통합하고 시스템의 로깅 동작을 관리 할 수 ​​있습니다. 이벤트 메타 데이터 및 페이로드를 비롯하여 대부분의 구조를 ETW 파이프 라인에서 상속하고 로그 메시지를 데이터베이스, 롤링 파일 또는 Windows Azure 테이블 저장소와 같은 여러 대상에 기록하고 시스템 로그를 설정하여 시스템 로그를 제어 할 수 있습니다 필터 및 로깅 자세한.