.Net WCF Service Trace Log с управлением файлами журналов (Rolling)

У меня есть некоторые службы .Net WCF, для этих служб я настроил файл app.config для регистрации сообщений, отправленных и полученных, в файле .svclog, который доступен для чтения & quot; Service Trace Viewer Tool & quot; (SvcTraceViewer.exe). Этот инструмент хорошо отображает файлы журналов, показывая обработанные SOAP-сообщения.

Мне нужно использовать прослушиватель System.Diagnostics.XmlWriterTraceListener, чтобы правильно отформатировать файл .svclog, чтобы его можно было обработать с помощью средства просмотра трассировки служб.

У меня проблема в том, что файл .svclog становится слишком большим & amp; Service Trace Viewer Tool становится непригодным для использования из-за медленного времени отклика.

Средство просмотра трассировки служб предоставляет средство, позволяющее открывать часть файла журнала, если файл & gt; 40 МБ, но это все еще слишком медленно. Похоже, в файле app.config нет возможности настроить файл .svclog для автоматического создания нового файла каждый день или при достижении файлом определенного размера.

Существует прослушиватель текстового журнала Microsoft.VisualBasic.Logging.FileLogTraceListener, который поддерживает logfilecreationschedule = & quot; Daily & quot; свойство, которое ежедневно обновляет файл журнала, однако результирующий файл журнала от этого прослушивателя трудно использовать специалисту по поддержке операций, поскольку записи журнала плохо отображаются, а большие документы xml способствуют путанице.

Какова лучшая практика в этой области, похоже, что мне, возможно, придется написать собственное расширение журнала WCF, которое кажется излишним, просто чтобы справиться с отсутствием функции прокрутки файла журнала во встроенном прослушивателе журнала System.Diagnostics.XmlWriterTraceListener / Appender.

Я также экспериментировал со сценарием, чтобы остановить приложение и переименовать файлы журналов, но это не представляется возможным, поскольку в Windows утилиты handle.exe и openfile не могут закрыть файл, открытый через сетевой ресурс, поэтому я не могу переименовать его. / переместить старый файл журнала, если кто-то просматривает его через общий сетевой ресурс. Скоро выложу отдельный вопрос об этом.

Спасибо, Мэтт.

Ответы на вопрос(2)

Ваш ответ на вопрос