Compartilhar via


<log de mensagens>

Esse elemento define as configurações para os recursos de registro em log de mensagens do WCF (Windows Communication Foundation).

<configuração>
   <system.serviceModel>
     <Diagnostics>
       <log de mensagens>

Sintaxe

<system.serviceModel>
  <diagnostics>
    <messageLogging logEntireMessage="Boolean"
                    logMalformedMessages="Boolean"
                    logMessagesAtServiceLevel="Boolean"
                    logMessagesAtTransportLevel="Boolean"
                    maxMessagesToLog="Integer"
                    maxSizeOfMessageToLog="Integer">
      <filters>
        <clear />
      </filters>
    </messageLogging>
  </diagnostics>
</system.serviceModel>

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
logEntireMessage Um valor booliano que especifica se a mensagem inteira (cabeçalho e corpo da mensagem) é registrada. O padrão é false, o que significa que somente o cabeçalho da mensagem é registrado. Essa configuração afeta todos os níveis de registro em log de mensagens (serviço, transporte e malformados).
logMalformedMessages Um valor booliano que especifica se as mensagens malformadas são registradas em log. Mensagens malformadas não contam para o maxMessagesToLog. O padrão é false.
logMessagesAtServiceLevel Um valor booliano que especifica se as mensagens são rastreadas no nível do serviço (antes das transformações relacionadas à criptografia e ao transporte). O padrão é false.
logMessagesAtTransportLevel Um valor booliano que especifica se as mensagens são rastreadas no nível de transporte. Todos os filtros especificados no arquivo de configuração são aplicados e somente as mensagens que correspondem aos filtros são rastreadas. O padrão é false.
maxMessagesToLog Um inteiro positivo que especifica o número máximo de mensagens a serem registradas. O padrão é 1000.
maxSizeOfMessageToLog Um inteiro positivo que especifica o tamanho máximo, em bytes, de uma mensagem para registrar em log. Mensagens maiores que o limite não serão registradas. Essa configuração afeta todos os níveis de rastreamento. O padrão é 262144(0x4000).

Elementos filho

Elemento Description
filters O filters elemento contém uma coleção de filtros XPath. Quando o registro em log de mensagens de transporte estiver habilitado (logMessagesAtTransportLevel é true), somente as mensagens correspondentes aos filtros serão registradas.

Os filtros são aplicados somente na camada de transporte. O nível de serviço e o registro em log de mensagens malformados não são afetados por filtros.

O único atributo para esse elemento filteré um XpathFilter.

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

Elementos pai

Elemento Description
diagnostics Define as configurações do WCF para inspeção e controle de runtime para o administrador.

Observações

As mensagens são registradas em três níveis diferentes na pilha: serviço, transporte e malformado. Cada nível pode ser ativado separadamente.

Os filtros XPath podem ser adicionados para registrar mensagens específicas nos níveis de transporte e serviço. Se nenhum filtro for definido, todas as mensagens serão registradas. Os filtros são aplicados somente aos cabeçalhos da mensagem. O corpo é ignorado. O WCF ignora o corpo da mensagem para melhorar o desempenho. Se você quiser filtrar com base no conteúdo do corpo, poderá criar um ouvinte personalizado com um filtro que o faça.

Você precisa criar um ouvinte de rastreamento para ativar o rastreamento de mensagens. O ouvinte em si pode ser qualquer ouvinte que funcione com a System.Diagnostics arquitetura de rastreamento. O exemplo a seguir demonstra como criar esse ouvinte.

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

Example

<messageLogging logEntireMessage="true"
                logMalformedMessages="true"
                logMessagesAtServiceLevel="true"
                logMessagesAtTransportLevel="true"
                maxMessagesToLog="42"
                maxSizeOfMessageToLog="42">
  <filters>
    <clear />
  </filters>
</messageLogging>

Consulte também