Циклическая трассировка
Пример CircularTracing демонстрирует реализацию прослушивателя трассировки циклического буфера. Обычным сценарием для производственных служб является длительная доступность этих служб и включенное ведение журнала трассировки на низком уровне. Этим службам требуется много пространства на диске. При устранении неполадок службы к устранению проблемы имеют отношение последние записанные данные из журнала трассировки. Этот образец демонстрирует реализацию прослушивателя трассировки циклического буфера, в котором на диске хранятся только самые последние трассировки с объемом данных, не превышающим заданного в настройках. Этот пример основан на начале работы и включает в себя настраиваемый прослушиватель трассировки.
Примечание.
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.
В этом примере предполагается, что вы знакомы с примером трассировки и ведения журнала сообщений и ознакомились с документацией, предоставленной для примера ведения журнала трассировки и сообщений.
Прослушиватель трассировки циклического буфера
Реализация прослушивателя трассировки циклического буфера основана на двух файлах, каждый из которых может содержать до половины общего требуемого объема данных журнала трассировки. Прослушиватель создает один файл и производит запись в этот файл до тех пор, пока не будет достигнут предел, равный половине объема данных, после чего переключается на второй файл. После того как прослушивать достигает предела для второго файла, он перезаписывает первый файл, заполняя его новыми трассировками.
Этот прослушиватель является производным от XmlWriteTraceListener
этого и позволяет просматривать журналы с помощью средства просмотра трассировки службы (SvcTraceViewer.exe). При просмотре журналов можно легко объединить два файла журнала, одновременно открыв их в средстве Service Trace Viewer. Средство Service Trace Viewer автоматически сортирует трассировки, чтобы они отображались в правильном порядке.
Настройка
Службу можно настроить для использования прослушивателя трассировки циклического буфера, добавив приведенный ниже код в элементы прослушивателя и источника. Максимальный размер файла задается с помощью атрибута 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>
Настройка, сборка и выполнение образца
Убедитесь, что вы выполнили процедуру однократной установки для примеров Windows Communication Foundation.
Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Building the Windows Communication Foundation Samples.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".