2012-03-08 23 views
13

Tại sao tôi nên sử dụng Event Tracing for Windows (ETW) qua tiêu chuẩn .NET EventLog class và ngược lại? Có biết rằng chúng tôi sẽ sử dụng khá một vài quầy hiệu suất tác động đến quyết định?Tại sao sử dụng ETW trên EventLog và ngược lại?

Những gì tôi biết cho đến nay:

  1. ETW nên perform much better.
  2. ETW là nhiều công việc để tích hợp với (ví dụ: .NET Event Tracing for Windows)
  3. Bằng cách chọn một trong các kênh tiêu chuẩn trong ETW (ví dụ: Ứng dụng, Hệ thống), thông tin tương tự có sẵn trong nhật ký sự kiện.

Trả lời

13

ETW có nhiều lợi thế.

Đầu tiên, trong .NET 4.5, nó sẽ đơn giản hơn nhiều để sử dụng. Lớp EventSource trong 4.5 làm đơn giản hóa đáng kể việc tạo sự kiện từ bên trong mã của bạn.

Tuy nhiên, ngay cả khi không có điều này, ETW có một số lợi thế rất lớn, mặc dù nó thường hoạt động khác nhau, và, như vậy, phục vụ một mục đích khác với EventLog.

EventLog thực sự được thiết kế để ghi nhật ký. ETW, mặt khác, cho phép bạn theo dõi tiến trình của ứng dụng của bạn trong ngữ cảnh của hệ thống như một toàn bộ. Khi bạn bắt đầu thu thập các sự kiện ETW, bạn thu thập chúng trên cơ sở hệ thống, cho phép bạn không chỉ theo dõi ứng dụng của bạn mà còn xem những gì đang xảy ra liên quan đến hệ thống khi nó đang chạy. Bằng cách sử dụng một công cụ như PerfView, bạn có thể xem các phần cụ thể của ứng dụng của bạn hoạt động như thế nào trong khi đồng thời nhìn thấy những gì đang xảy ra với khung làm việc và Windows nói chung.

4

Điều này MSDN article thực hiện công việc tốt mô tả lợi ích của ETW.

Trong khi EventSource cung cấp một cách thành ngữ tuyệt vời cho các nhà phát triển .NET để tạo ra các sự kiện ETW, nó không đi kèm với bất kỳ đích đến quen thuộc nào để ghi nhật ký (tệp cán, cơ sở dữ liệu, v.v.). ETW sử dụng các đích riêng của nó như các tệp .etl và sử dụng các công cụ khác nhau để phân tích cú pháp và phân tích dữ liệu nhật ký.

Semantic Logging Application Block mới giúp dễ dàng kết hợp chức năng EventSource và quản lý hành vi ghi nhật ký của hệ thống của bạn. Nó có thể kế thừa hầu hết cấu trúc từ đường ống ETW, bao gồm siêu dữ liệu sự kiện và tải trọng, để ghi thông điệp tường trình tới nhiều đích, chẳng hạn như cơ sở dữ liệu, tệp cuộn hoặc bộ nhớ bảng Windows Azure và kiểm soát nội dung hệ thống của bạn bằng cách đặt bộ lọc và ghi nhật ký chi tiết.