<messageLogging>
Данный элемент определяет параметры ведения журнала сообщений для Windows Communication Foundation (WCF).
Иерархия схемы
<system.serviceModel>
<diagnostics>
<messageLogging>
Синтаксис
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="Boolean"
logMalformedMessages="Boolean"
logMessagesAtServiceLevel="Boolean"
logMessagesAtTransportLevel="Boolean"
maxMessagesToLog="Integer"
maxSizeOfMessageToLog="Integer" >
<filters>
<clear />
</filters>
</messageLogging>
</diagnostics>
</system.serviceModel>
Атрибуты и элементы
В следующих разделах описываются атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Описание |
---|---|
logEntireMessage |
Логическое значение, указывающее, заносится ли в журнал сообщение целиком (тело и заголовок сообщения). Значением по умолчанию является false, означающее, что в журнал заносится только заголовок сообщения. Действие этого параметра распространяется на все уровни ведения журнала сообщений (службы, транспорта и неправильных сообщений). |
logMalformedMessages |
Логическое значение, указывающее, заносятся ли в журнал неправильные сообщения. Такие сообщения не учитываются в значении maxMessagesToLog. Значение по умолчанию — false. |
logMessagesAtServiceLevel |
Логическое значение, указывающее, трассируются ли сообщения на уровне службы (перед шифрованием и преобразованиями, связанными с транспортом). Значение по умолчанию — false. |
logMessagesAtTransportLevel |
Логическое значение, указывающее, трассируются ли сообщения на уровне транспорта. Применяются все фильтры, указанные в файле конфигурации, и трассируются только те сообщения, которые соответствуют данным фильтрам. Значение по умолчанию — false. |
maxMessagesToLog |
Положительное целое число, указывающее максимальное количество сообщений для внесения в журнал. Значение по умолчанию — 1000. |
maxSizeOfMessageToLog |
Положительное целое число, указывающее максимальный размер сообщения для внесения в журнал (в байтах). Сообщения, размер которых превышает данное ограничение, в журнал не вносятся. Действие этого параметра распространяется на все уровни трассировки. Значение по умолчанию — 262 144 (0x4000). |
Дочерние элементы
Элемент | Описание |
---|---|
filters |
Элемент filters содержит коллекцию фильтров XPath. Если включена регистрация сообщений на уровне транспорта (то есть атрибуту logMessagesAtTransportLevel присвоено значение true), в журнал заносятся только те сообщения, которые соответствуют фильтрам. Фильтры применяются только на уровне транспорта. Фильтры не влияют на ведение журнала сообщений уровня службы и неправильно сформированных сообщений. Единственным атрибутом элемента filter является XpathFilter.
|
Родительские элементы
Элемент | Описание |
---|---|
diagnostics |
Определяет параметры WCF для проверки во время выполнения и управления администратором. |
Замечания
Сообщения вносятся в журнал на трех различных уровнях в стеке: сообщения уровня службы, транспорта и неправильные сообщения. Активация каждого уровня может происходить отдельно.
Фильтры XPath можно добавлять для внесения в журнал отдельных сообщений уровней транспорта и службы. Если не определено ни одного фильтра, в журнал вносятся все сообщения. Фильтры применяются только к заголовкам сообщений. Тело сообщения не обрабатывается. WCF игнорирует тело сообщения для повышения производительности. Если требуется применить фильтрацию по содержимому текста сообщения, можно создать пользовательский прослушиватель с фильтром, который будет выполнять эту задачу.
Чтобы включить трассировку сообщений, необходимо создать прослушиватель трассировки. Сам прослушиватель может быть любым прослушивателем, который работает с архитектурой трассировки System.Diagnostics. В следующем примере показано создание подобного прослушивателя.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Verbose">
<listeners>
<clear />
<add type="System.Diagnostics.DefaultTraceListener" name="Default"
traceOutputOptions="None" />
<add name="ServiceModel Listener" traceOutputOptions="None" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<clear />
<add type="System.Diagnostics.DefaultTraceListener" name="Default"
traceOutputOptions="None" />
<add name="MessageLogging Listener" traceOutputOptions="None"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\ItProTools\TraceLog.xml"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModel Listener"
traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack" />
<add initializeData="C:\ItProTools\MessageLog.log"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="MessageLogging Listener"
traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack" />
</sharedListeners>
</system.diagnostics>
Пример
<messageLogging logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="42"
maxSizeOfMessageToLog="42">
<filters>
<clear />
</filters>
</messageLogging>
См. также
Справочник
DiagnosticSection
System.ServiceModel.Diagnostics
MessageLogging
MessageLoggingElement