Udostępnij za pośrednictwem


Śledzenie cykliczne

W przykładzie CircularTracing pokazano implementację odbiornika śledzenia buforu cyklicznego. Typowym scenariuszem dla usług produkcyjnych jest posiadanie usług, które są dostępne przez długi czas i włączenie rejestrowania śledzenia na niskim poziomie. Te usługi zużywają dużo miejsca na dysku. Podczas rozwiązywania problemów z usługą najnowsze dane w dzienniku śledzenia mają zastosowanie do rozwiązania problemu. W tym przykładzie pokazano implementację odbiornika śledzenia buforu cyklicznego, w którym tylko najnowsze ślady są przechowywane na dysku do konfigurowalnej ilości danych. Ten przykład jest oparty na rozpoczynaniu pracy i zawiera niestandardowy odbiornik śledzenia.

Uwaga

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

W tym przykładzie przyjęto założenie, że znasz przykład Śledzenie i rejestrowanie komunikatów i zapoznasz się z dokumentacją udostępnioną dla przykładu Śledzenie i rejestrowanie komunikatów.

Odbiornik śledzenia buforu cyklicznego

Koncepcją implementacji odbiornika śledzenia buforu cyklicznego jest posiadanie dwóch plików, które mogą przechowywać maksymalnie połowę wszystkich żądanych danych dziennika śledzenia. Odbiornik tworzy jeden plik i zapisuje w tym pliku, dopóki nie osiągnie limitu połowy rozmiaru danych, w którym przełączy się do drugiego pliku. Gdy odbiornik osiągnie limit dla drugiego pliku — zastępuje pierwszy plik nowymi śladami.

Ten odbiornik pochodzi z XmlWriteTraceListener elementu i umożliwia wyświetlanie dzienników za pomocą narzędzia podglądu śledzenia usługi (SvcTraceViewer.exe). Podczas próby wyświetlenia dzienników dwa pliki dziennika można łatwo połączyć, otwierając oba pliki dziennika w tym samym czasie w narzędziu Podgląd śledzenia usługi. Narzędzie Podgląd śladów usługi automatycznie zajmuje się sortowaniem śladów, tak aby były wyświetlane w odpowiedniej kolejności.

Konfigurowanie

Usługę można skonfigurować do używania odbiornika śledzenia buforu cyklicznego, dodając następujący kod dla odbiornika i elementów źródłowych. Maksymalny rozmiar pliku jest określany przez ustawienie atrybutu maxFileSizeKB w konfiguracji odbiornika śledzenia cyklicznego. Przedstawiono to w poniższym kodzie.

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

Aby skonfigurować, skompilować i uruchomić przykład

  1. Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

  3. Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.

Zobacz też