Рекомендуемые параметры для трассировки и ведения журналов сообщений
Этот раздел содержит описание рекомендуемых параметров трассировки и регистрации сообщений для различных операционных сред.
Параметры, рекомендуемые для рабочей среды
В рабочей среде, если используются источники трассировки WCF, рекомендуется в switchValue
задать значение Warning. При использовании источника трассировки WCF System.ServiceModel
рекомендуется задать в атрибуте switchValue
значение Warning
, а в атрибуте propagateActivity
- значение true
. При использовании источника трассировки, определенного пользователем, рекомендуется присвоить атрибуту switchValue
значение Warning, ActivityTracing
. Это можно сделать вручную с помощью средства редактора конфигурации (SvcConfigEditor.exe). Если в работе не ожидается резкого подъема производительности, во всех перечисленных выше случаях атрибуту switchValue
можно присвоить значение Information
, при котором генерируется достаточно большое количество данных трассировки. Следующий пример иллюстрирует задание описанных рекомендуемых параметров.
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Warning"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="myUserTraceSource"
switchValue="Warning, ActivityTracing">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logs\Traces.svclog" />
</sharedListeners>
</system.diagnostics>
<system.serviceModel>
<diagnostics wmiProviderEnabled="true">
</diagnostics>
</system.serviceModel>
</configuration>
Параметры, рекомендуемые для развертывания или отладки
При работе в среде развертывания или отладки рекомендуется выбирать значения Information
или Verbose
наряду с ActivityTracing
как для определенных пользователем, так и для заданных System.ServiceModel
источников трассировки. Чтобы улучшить процесс отладки, к конфигурации необходимо добавить дополнительный источник трассировки (System.ServiceModel.MessageLogging
) для активации функции регистрации сообщений. Обратите внимание, что атрибут switchValue
не влияет на этот источник трассировки.
Следующий пример иллюстрирует задание рекомендуемых параметров с помощью общего прослушивателя, использующего XmlWriterTraceListener
.
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="myUserTraceSource"
switchValue="Information, ActivityTracing">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logs\Traces.svclog" />
</sharedListeners>
</system.diagnostics>
<system.serviceModel>
<diagnostics wmiProviderEnabled="true">
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="3000"
/>
</diagnostics>
</system.serviceModel>
</configuration>
Изменение параметров с помощью инструментария WMI
WMI можно использовать для изменения параметров конфигурации во время выполнения (включив wmiProviderEnabled
атрибут в конфигурации, как показано в приведенном выше примере конфигурации). Например, можно использовать WMI в CIM Studio для изменения уровней источника трассировки с предупреждения на сведения во время выполнения. Следует помнить о том, что такой способ отладки может значительно снизить производительность. Дополнительные сведения об использовании WMI см. в разделе "Использование инструментирования управления Windows для диагностики ".
Использование корреляции событий в трассировке ASP.NET
События ASP.NET не получают корреляционный идентификатор (ActivityID), если не включена функция трассировки событий ASP.NET. Чтобы правильно увидеть коррелированные события, необходимо включить трассировку событий ASP.NET с помощью следующей команды в консоли команд, которую можно вызвать, перейдя в меню "Пуск", "Запустить " и "Ввести cmd",
logman start mytrace -pf logman.providers -o test.etl –ets
Для отключения трассировки событий ASP.NET используйте следующую команду.
logman stop mytrace -ets