Поделиться через


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

<filters>
    <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope">/soap:Envelope</add>
</filters>

Родительские элементы

Элемент Описание

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

Другие ресурсы

Message Loggging