Utöka spårning
Exemplet ExtendingTracing visar hur du utökar spårningsfunktionen för Windows Communication Foundation (WCF) genom att skriva användardefinierade aktivitetsspårningar i klient- och tjänstkod. Genom att skriva användardefinierade aktivitetsspårningar kan användaren skapa spårningsaktiviteter och gruppera spårningar i logiska arbetsenheter. Det är också möjligt att korrelera aktiviteter via överföringar (inom samma slutpunkt) och spridning (mellan slutpunkter). I det här exemplet är spårning aktiverat för både klienten och tjänsten. Mer information om hur du aktiverar spårning i klient- och tjänstkonfigurationsfiler finns i Spårning och Meddelandeloggning.
Det här exemplet baseras på Komma igång.
Kommentar
Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Spårning och aktivitetsspridning
Med användardefinierad aktivitetsspårning kan användaren skapa egna spårningsaktiviteter för att gruppera spårningar i logiska arbetsenheter, korrelera aktiviteter genom överföringar och spridning och minska prestandakostnaden för WCF-spårning (till exempel diskutrymmeskostnaden för en loggfil).
Lägga till anpassade källor
Användardefinierade spårningar kan läggas till i både klient- och tjänstkoden. Genom att lägga till spårningskällor i klient- eller tjänstkonfigurationsfilerna kan dessa anpassade spårningar registreras och visas i tjänstspårningsvisningsverktyget (SvcTraceViewer.exe). Följande kod visar hur du lägger till en användardefinierad spårningskälla med namnet ServerCalculatorTraceSource
i konfigurationsfilen.
<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>
....
Korrelera aktiviteter
Om du vill korrelera aktiviteter direkt mellan slutpunkter propagateActivity
måste attributet anges till true
i spårningskällan System.ServiceModel
. Om du vill sprida spårningar utan att gå igenom WCF-aktiviteter måste ServiceModel Activity Tracing också stängas av. Detta visas i följande kodexempel.
Kommentar
Att stänga av ServiceModel-aktivitetsspårning är inte detsamma som att ha spårningsnivån, som anges av switchValue
egenskapen, inställd på av.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Minska prestandakostnaden
Inställningen ActivityTracing
till av i System.ServiceModel
spårningskällan genererar en spårningsfil som endast innehåller användardefinierade aktivitetsspårningar, utan någon av de ServiceModel-aktivitetsspårningar som ingår. Om du undantar ServiceModel-aktivitetsspårningar resulterar det i en mycket mindre loggfil. Möjligheten att korrelera WCF-bearbetningsspårningar går dock förlorad.
Konfigurera, skapa och köra exemplet
Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.