Dela via


Cirkulär spårning

CircularTracing-exemplet visar implementeringen av en cirkulär buffertspårningslyssnare. Ett vanligt scenario för produktionstjänster är att ha tjänster som är tillgängliga under långa tidsperioder och att spårningsloggning är aktiverat på en låg nivå. Dessa tjänster förbrukar mycket diskutrymme. När du felsöker en tjänst är de senaste data i spårningsloggen relevanta för att lösa ett problem. Det här exemplet visar en implementering av en cirkulär buffertspårningslyssnare där endast de senaste spårningarna sparas på disken upp till en konfigurerbar mängd data. Det här exemplet baseras på Komma igång och innehåller en anpassad spårningslyssnare.

Kommentar

Installationsproceduren 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 exemplet spårning och meddelandeloggning och har läst dokumentationen för exemplet spårning och meddelandeloggning .

Cirkelbuffertspårningslyssnare

Konceptet bakom implementeringen av den cirkulära buffertspårningslyssaren är att ha två filer som var och en kan lagra upp till hälften av de totala önskade spårningsloggdata. Lyssnaren skapar en fil och skriver till den filen tills den når gränsen på hälften av datastorleken, då den växlar till en andra fil. När lyssnaren når gränsen för den andra filen skriver den över den första filen med nya spårningar.

Den här lyssnaren XmlWriteTraceListener härleds från och gör att loggarna kan visas med servicespårningsverktyget (SvcTraceViewer.exe). När du försöker visa loggarna kan du enkelt kombinera de två loggfilerna genom att öppna båda loggfilerna samtidigt i verktyget Tjänstspårningsvisare. Verktyget Visningsprogram för tjänstspårning tar automatiskt hand om sortering av spårningarna så att de visas i rätt ordning.

Konfiguration

En tjänst kan konfigureras för att använda spårningslyssnaren för cirkulär buffert genom att lägga till följande kod för en lyssnare och källelement. Den maximala filstorleken maxFileSizeKB anges genom att attributet anges i den cirkulära spårningslyssnarens konfiguration. Detta visas i följande kod.

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
      <listeners>
        <add name="CircularTraceListener" />
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="CircularTraceListener" type="Microsoft. Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
         initializeData="c:\logs\CircularTracing-service.svclog" maxFileSizeKB="100" />
  </sharedListeners>
  <trace autoflush="true" />
</system.diagnostics>

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

  1. Se till att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.

  2. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

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

Se även