2013-09-25 16 views
7

Ben varsayılan olarak düzenli günlük imkanları sağlayan çeşitli yöntemlerle en az olan bir OlayKaynağı beyan edebilmek istiyorum.ETW'de bir EventSource alt sınıfını oluşturmak mümkün mü?

örn.

  • Bilgisi()
  • (uyar)
  • Hata() her hizmetin içinde, devraldığı belirli olay kaynağını tanımlamak için ek olarak

Ben muktedir istiyorum Yukarıdakileri sağlayan temel sınıf. Şu anda manifesto oluşturan EventRegister.exe uygulaması, olay kaynağının mühürlenmesi gerektiğinden şikayetçidir.

Bunu yanlış mı yapıyorum? Eğer öyleyse, yukarıdakilere nasıl ulaşabilirim? Ben Kurumsal Kitaplığı'ndan SLAB aksine Kanalları için desteği vardır anlıyorum son ve en büyük Microsoft.Diagnostics.Tracing (ön) kullanıyorum

public class ETWBase : EventSource 
    { 
     [Event(1, Channel = EventChannel.Admin, Message = "Info Message: {0}")] 
     public void Info(string message) { this.WriteEvent(1); } 

     [Event(2, Channel = EventChannel.Debug, Message = "Debug Message: {0}")] 
     public void Trace(string message) { this.WriteEvent(2); } 

    } 

    [EventSource(Name = "ABC-MyEtwServiceEventSource")] 
    public sealed class MyEtwServiceEventSource : ETWBase 
    { 
     public static MyEtwServiceEventSource Log = new MyEtwServiceEventSource(); 

     [Event(3, Channel = EventChannel.Debug, Message = "My specific Message: {0}")] 
     public void Trace(string message) { this.WriteEvent(3); }  
    } 

: örnek kodu inceleyin.

+1

Microsoft.Diagnostics.Tracing sınıfı sızdırmaz olmasını bekler. EventSource'u devralan sınıfın mühürlenmesi gerekiyor, eğer mühürlenmiş olarak işaretlemezseniz, manifesto oluşturamazsınız. Bunun işe yarayacağından şüphe duyuyorum. – KRP

+0

Yaygın yöntemleri birden çok EventSource üzerinde geniş bir sistemde nasıl paylaşırım? – jaffa

+0

Bu cepheden gerçekten emin değilim, sanırım bunu yapamayız. – KRP

cevap

3

ETWBase soyut olmalı ve EventAttribute tarafından dekore edilmiş yöntemlere sahip olmamalıdır.

Sen Event Source veya Event Source Samples Nuget paketleri başvuran eğer projenize eklenmekte olan belgeler dosyasında _EventSourceUsersGuide.docx daha fazla bilgi bulabiliriz. (Ön)