Ś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
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
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).
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.