Delen via


ETW-tracering

Het AnalyticTrace-voorbeeld laat zien hoe u End-to-End-tracering (E2E) implementeert met behulp van Event Tracing for Windows (ETW) en de ETWTraceListener tracering die bij dit voorbeeld wordt geleverd. Het voorbeeld is gebaseerd op aan de slag en bevat ETW-tracering.

Notitie

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

In dit voorbeeld wordt ervan uitgegaan dat u bekend bent met tracering en berichtregistratie.

Elke traceringsbron in het System.Diagnostics traceringsmodel kan meerdere traceringslisteners hebben die bepalen waar en hoe de gegevens worden getraceerd. Het type listener definieert de indeling waarin traceringsgegevens worden vastgelegd. In het volgende codevoorbeeld ziet u hoe u de listener toevoegt aan de configuratie.

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel"
             switchValue="Verbose,ActivityTracing"
             propagateActivity="true">
            <listeners>
                <add type=
                   "System.Diagnostics.DefaultTraceListener"
                   name="Default">
                   <filter type="" />
                </add>
                <add name="ETW">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add type=
            "Microsoft.ServiceModel.Samples.EtwTraceListener, ETWTraceListener"
            name="ETW" traceOutputOptions="Timestamp">
            <filter type="" />
       </add>
    </sharedListeners>
</system.diagnostics>

Voordat u deze listener gebruikt, moet een ETW-traceringssessie worden gestart. Deze sessie kan worden gestart met behulp van Logman.exe of Tracelog.exe. Een SetupETW.bat-bestand is opgenomen in dit voorbeeld, zodat u de ETW-traceringssessie kunt instellen, samen met een CleanupETW.bat-bestand voor het sluiten van de sessie en het voltooien van het logboekbestand.

Notitie

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp. Zie voor meer informatie over deze hulpprogramma's https://go.microsoft.com/fwlink/?LinkId=56580

Wanneer u de ETWTraceListener gebruikt, worden traceringen geregistreerd in binaire ETL-bestanden. Als ServiceModel-tracering is ingeschakeld, worden alle gegenereerde traceringen weergegeven in hetzelfde bestand. Gebruik het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) om logboekbestanden van .etl en .svclog weer te geven. De viewer maakt een end-to-end weergave van het systeem waarmee een bericht van de bron naar het doel en het verbruikspunt kan worden getraceerd.

De ETW Trace Listener ondersteunt circulaire logboekregistratie. Als u deze functie wilt inschakelen, gaat u naar Start, Uitvoeren en typt cmd u om een opdrachtconsole te starten. Vervang in de volgende opdracht de <logfilename> parameter door de naam van het logboekbestand.

logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000

De -f schakelopties -max zijn optioneel. Ze geven de binaire kringindeling en de maximale logboekgrootte van respectievelijk 1000 MB op. De -p switch wordt gebruikt om de traceringsprovider op te geven. In ons voorbeeld "{411a0819-c24b-428c-83e2-26b41091702e}" is de GUID voor 'XML ETW Sample Provider'.

Als u de sessie wilt starten, typt u de volgende opdracht.

logman start Wcf

Nadat u de logboekregistratie hebt voltooid, kunt u de sessie stoppen met de volgende opdracht.

logman stop Wcf

Met dit proces worden binaire kringlogboeken gegenereerd die u kunt verwerken met uw keuzeprogramma, waaronder het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) of Tracerpt.

U kunt ook het voorbeeld van kringtracering bekijken voor meer informatie over een alternatieve listener om circulaire logboekregistratie uit te voeren.

Het voorbeeld instellen, compileren en uitvoeren

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

  2. Volg de instructies in Het bouwen van de Windows Communication Foundation-voorbeelden om de oplossing te bouwen.

    Notitie

    Als u de RegisterProvider.bat, SetupETW.bat en CleanupETW.bat opdrachten wilt gebruiken, moet u uitvoeren onder een lokaal beheerdersaccount. Als u Windows Vista of hoger gebruikt, moet u ook de opdrachtprompt uitvoeren met verhoogde bevoegdheden. Klik hiervoor met de rechtermuisknop op het opdrachtpromptpictogram en klik vervolgens op Uitvoeren als administrator.

  3. Voordat u het voorbeeld uitvoert, voert u RegisterProvider.bat uit op de client en server. Hiermee stelt u het resulterende ETWTracingSampleLog.etl-bestand in om traceringen te genereren die kunnen worden gelezen door de Service Trace Viewer. Dit bestand vindt u in de map C:\logs. Als deze map niet bestaat, moet deze worden gemaakt of worden er geen traceringen gegenereerd. Voer vervolgens SetupETW.bat uit op de client- en servercomputers om de ETW-traceringssessie te starten. Het bestand SetupETW.bat vindt u in de map CS\Client.

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

  5. Wanneer het voorbeeld is voltooid, voert u CleanupETW.bat uit om het maken van het ETWTracingSampleLog.etl-bestand te voltooien.

  6. Open het bestand ETWTracingSampleLog.etl vanuit de Service Trace Viewer. U wordt gevraagd het binaire bestand op te slaan als een .svclog-bestand.

  7. Open het zojuist gemaakte .svclog-bestand vanuit de Service Trace Viewer om de ETW- en ServiceModel-traceringen weer te geven.

Zie ook