İzlemeyi genişletme
ExtendingTracing örneği, istemci ve hizmet kodunda kullanıcı tanımlı etkinlik izlemeleri yazarak Windows Communication Foundation (WCF) izleme özelliğini genişletmeyi gösterir. Kullanıcı tanımlı etkinlik izlemeleri yazmak, kullanıcının izleme etkinlikleri oluşturmasına ve izlemeleri mantıksal iş birimlerinde gruplandırmasına olanak tanır. Aktarımlar (aynı uç nokta içinde) ve yayma (uç noktalar arasında) aracılığıyla etkinlikleri ilişkilendirmek de mümkündür. Bu örnekte izleme hem istemci hem de hizmet için etkinleştirilmiştir. İstemci ve hizmet yapılandırma dosyalarında izlemeyi etkinleştirme hakkında daha fazla bilgi için bkz . İzleme ve İleti Günlüğü.
Bu örnek, Başlarken'i temel alır.
Not
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda bulunur.
İzleme ve Etkinlik Yayma
Kullanıcı tanımlı etkinlik izleme, kullanıcının izlemeleri mantıksal iş birimleri halinde gruplandırmak, aktarımlar ve yayma yoluyla etkinlikleri ilişkilendirmek ve WCF izlemenin performans maliyetini (örneğin, günlük dosyasının disk alanı maliyeti) azaltması için kendi izleme etkinliklerini oluşturmasına olanak tanır.
Özel kaynaklar ekleme
Kullanıcı tanımlı izlemeler hem istemci hem de hizmet koduna eklenebilir. İstemci veya hizmet yapılandırma dosyalarına izleme kaynakları eklemek, bu özel izlemelerin Hizmet İzleme Görüntüleyicisi Aracı'nda (SvcTraceViewer.exe) kaydedilmesini ve görüntülenmesini sağlar. Aşağıdaki kod, yapılandırma dosyasına adlı ServerCalculatorTraceSource
kullanıcı tanımlı bir izleme kaynağının nasıl ekleneceğini gösterir.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Etkinlikleri ilişkilendirme
Etkinlikleri doğrudan uç noktalar arasında ilişkilendirmek için özniteliğinin propagateActivity
izleme kaynağında System.ServiceModel
olarak ayarlanması true
gerekir. Ayrıca, WCF etkinliklerine gitmeden izlemeleri yaymak için ServiceModel Etkinlik İzleme kapatılmalıdır. Bu, aşağıdaki kod örneğinde görülebilir.
Not
ServiceModel Etkinlik İzleme'yi kapatmak, özelliği tarafından belirtilen izleme düzeyinin kapalı olarak ayarlanmasıyla switchValue
aynı değildir.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Performans maliyetini düşür
İzleme kaynağında System.ServiceModel
kapalı olarak ayarlanmasıActivityTracing
, ServiceModel etkinlik izlemelerinden herhangi biri dahil olmadan yalnızca kullanıcı tanımlı etkinlik izlemelerini içeren bir izleme dosyası oluşturur. ServiceModel etkinlik izlemelerinin dışlanması çok daha küçük bir günlük dosyasına neden olur. Ancak, WCF işleme izlemelerini ilişkilendirme fırsatı kaybolur.
Örneği ayarlama, derleme ve çalıştırma
Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.
Örneği tek veya bilgisayarlar arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.