Delen via


Tracering uitbreiden

Het Sample ExtendTracing laat zien hoe u de traceringsfunctie van Windows Communication Foundation (WCF) kunt uitbreiden door door de gebruiker gedefinieerde activiteitstraceringen te schrijven in client- en servicecode. Door de gebruiker gedefinieerde activiteitentraceringen te schrijven, kan de gebruiker traceringsactiviteiten en groepstraceringen maken in logische werkeenheden. Het is ook mogelijk om activiteiten te correleren via overdrachten (binnen hetzelfde eindpunt) en doorgifte (tussen eindpunten). In dit voorbeeld is tracering ingeschakeld voor zowel de client als de service. Zie Tracering en berichtregistratie voor meer informatie over het inschakelen van tracering in client- en serviceconfiguratiebestanden.

Dit voorbeeld is gebaseerd op aan de slag.

Notitie

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

Tracering en activiteitsdoorgifte

Door de gebruiker gedefinieerde activiteitentracering stelt de gebruiker in staat om hun eigen traceringsactiviteiten te maken om traceringen te groeperen in logische werkeenheden, activiteiten te correleren via overdracht en doorgifte, en de prestatiekosten van WCF-tracering te verlagen (bijvoorbeeld de schijfruimtekosten van een logboekbestand).

Aangepaste bronnen toevoegen

Door de gebruiker gedefinieerde traceringen kunnen worden toegevoegd aan zowel client- als servicecode. Door traceringsbronnen toe te voegen aan de client- of serviceconfiguratiebestanden, kunnen deze aangepaste traceringen worden vastgelegd en weergegeven in het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe). De volgende code laat zien hoe u een door de gebruiker gedefinieerde traceringsbron toevoegt met de naam ServerCalculatorTraceSource aan het configuratiebestand.

<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>
....

Activiteiten correleren

Als u activiteiten rechtstreeks tussen eindpunten wilt correleren, moet het propagateActivity kenmerk worden ingesteld true op in de System.ServiceModel traceringsbron. Als u traceringen wilt doorgeven zonder WCF-activiteiten te doorlopen, moet ServiceModel Activity Tracing worden uitgeschakeld. Dit is te zien in het volgende codevoorbeeld.

Notitie

Het uitschakelen van ServiceModel Activity Tracing is niet hetzelfde als het traceringsniveau, aangeduid door de switchValue eigenschap, is uitgeschakeld.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

Prestatiekosten verlagen

Als ActivityTracing u wilt uitschakelen in de System.ServiceModel traceringsbron, wordt een traceringsbestand gegenereerd dat alleen door de gebruiker gedefinieerde activiteitstraceringen bevat, zonder dat een van de ServiceModel-activiteitstraceringen is opgenomen. Het uitsluiten van ServiceModel-activiteitentraceringen resulteert in een veel kleiner logboekbestand. De mogelijkheid om WCF-verwerkingstraceringen te correleren, gaat echter verloren.

Het voorbeeld instellen, bouwen en uitvoeren

  1. Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  2. Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.

  3. Als u het voorbeeld wilt uitvoeren in een configuratie van één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.

Zie ook