Циклическая трассировка

Пример CircularTracing демонстрирует реализацию прослушивателя трассировки циклического буфера. Обычный сценарий для производственных служб — это наличие служб, доступных в течение длительного времени, и включение логирования на низком уровне. Эти службы используют много места на диске. При устранении неполадок со службой самые последние данные в журнале трассировки помогают в решении проблемы. В этом примере демонстрируется реализация слушателя трассировки циклического буфера, которая сохраняет на диске только последние трассировки, объем которых можно настроить. Этот пример основан на разделе Начало работы и включает в себя настраиваемый прослушиватель трассировки.

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

В этом примере предполагается, что вы знакомы с примером трассировки и ведения журнала сообщений и ознакомились с документацией, предоставленной для примера ведения журнала трассировки и сообщений .

Прослушиватель трассировки циклического буфера

Концепция реализации прослушивателя трассировки циклического буфера заключается в использовании двух файлов, каждый из которых может хранить до половины общего объёма требуемых данных журнала трассировки. Прослушиватель создает один файл и записывает в этот файл, пока он не достигнет предела половины размера данных, после чего переключается на второй файл. Когда прослушиватель достигает предела для второго файла, он перезаписывает первый файл новыми трассировками.

Этот прослушиватель является производным от XmlWriteTraceListener и позволяет просматривать журналы с помощью средства просмотра трассировки службы (SvcTraceViewer.exe). При попытке просмотреть журналы два файла журнала можно легко перекомбинировать, открыв оба файла журнала одновременно в средстве просмотра трассировки службы. Средство просмотра трассировки служб автоматически выполняет сортировку трассировок, чтобы они отображались в правильном порядке.

Конфигурация

Службу можно настроить для использования объекта Circular Buffer Trace Listener, добавив следующий код для элементов прослушивателя и источника. Максимальный размер файла указывается заданием атрибута maxFileSizeKB в конфигурации прослушивателя циклической трассировки. Это демонстрируется в следующем коде.

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

Настройка, сборка и запуск примера

  1. Убедитесь, что вы выполнили процедуру настройкиOne-Time для примеров Windows Communication Foundation.

  2. Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .

  3. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".

См. также