Dela via


ETW-spårning

Exemplet AnalyticTrace demonstrerar hur man implementerar spårning från slutpunkt till slutpunkt (E2E) med händelsespårning för Windows (ETW) och ETWTraceListener som tillhandahålls med detta exempel. Exemplet baseras på Komma igång och innehåller ETW-spårning.

Anmärkning

Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.

Det här exemplet förutsätter att du är bekant med spårning och meddelandeloggning.

Varje spårningskälla i System.Diagnostics spårningsmodellen kan ha flera spårningslyssnare som avgör var och hur data spåras. Typen av lyssnare definierar i vilket format spårningsdata loggas. Följande kodexempel visar hur du lägger till lyssnaren i konfigurationen.

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

Innan du använder den här lyssnaren måste en ETW-spårningssession startas. Den här sessionen kan startas med hjälp av Logman.exe eller Tracelog.exe. En SetupETW.bat fil ingår i det här exemplet så att du kan konfigurera ETW-spårningssessionen tillsammans med en CleanupETW.bat fil för att stänga sessionen och slutföra loggfilen.

Anmärkning

Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet. Mer information om dessa verktyg finns i https://go.microsoft.com/fwlink/?LinkId=56580

När du använder ETWTraceListener loggas spårningar i binära .etl-filer. När ServiceModel-spårning är aktiverat visas alla genererade spårningar i samma fil. Använd Service Trace Viewer Tool (SvcTraceViewer.exe) för att visa loggfilerna .etl och .svclog. Visningsprogrammet skapar en helhetsvy över systemet som möjliggör spårning av ett meddelande från källan till dess mål och slutpunkt för konsumtion.

ETW Trace Listener stöder cirkulär loggning. Om du vill aktivera den här funktionen går du till Start, Kör och skriver cmd för att starta en kommandokonsol. Ersätt parametern <logfilename> med namnet på loggfilen i följande kommando.

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

Växlarna -f och -max är valfria. De anger det binära cirkulära formatet och den maximala loggstorleken på 1 000 MB. Växeln -p används för att ange spårningsprovidern. I vårt exempel är "{411a0819-c24b-428c-83e2-26b41091702e}" GUID:en för "XML ETW Sample Provider".

Om du vill starta sessionen skriver du följande kommando.

logman start Wcf

När du är klar med loggningen kan du stoppa sessionen med följande kommando.

logman stop Wcf

Den här processen genererar binära cirkulära loggar som du kan bearbeta med valfritt verktyg, inklusive Service Trace Viewer Tool (SvcTraceViewer.exe) eller Tracerpt.

Du kan också granska exemplet med cirkulär spårning för mer information om en alternativ lyssnare för att utföra cirkulär loggning.

Så här konfigurerar du, skapar och kör exemplet

  1. Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.

  2. Skapa lösningen genom att följa anvisningarna i Skapa Windows Communication Foundation-exempel.

    Anmärkning

    Om du vill använda kommandona RegisterProvider.bat, SetupETW.bat och CleanupETW.bat måste du köras under ett lokalt administratörskonto. Om du använder Windows Vista eller senare måste du också köra kommandotolken med utökade privilegier. Om du vill göra det högerklickar du på kommandotolkens ikon och klickar sedan på Kör som administratör.

  3. Innan du kör exemplet kör du RegisterProvider.bat på klienten och servern. Detta konfigurerar den resulterande ETWTracingSampleLog.etl-filen för att generera spårningar som kan läsas av tjänstspårningsvisaren. Den här filen finns i mappen C:\logs. Om den här mappen inte finns måste den skapas eller så genereras inga spårningar. Kör sedan SetupETW.bat på klient- och serverdatorerna för att starta ETW-spårningssessionen. Filen SetupETW.bat finns under mappen CS\Client.

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

  5. När exemplet är klart kör du CleanupETW.bat för att slutföra skapandet av filen ETWTracingSampleLog.etl.

  6. Öppna filen ETWTracingSampleLog.etl från tjänstspårningsvisningsprogrammet. Du uppmanas att spara den binära formaterade filen som en .svclog-fil.

  7. Öppna den nyligen skapade .svclog-filen från tjänstspårningsvyn för att visa ETW- och ServiceModel-spårningarna.

Se även