<registo de mensagens>

Este elemento define as definições para as capacidades de registo de mensagens do Windows Communication Foundation (WCF).

<configuração>
  <system.serviceModel>
    <diagnósticos>
      <registo de mensagens>

Syntax

<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 secções seguintes descrevem atributos, elementos subordinados e elementos principais.

Atributos

Atributo Descrição
logEntireMessage Um valor booleano que especifica se a mensagem inteira (cabeçalho da mensagem e corpo) é registada. A predefinição é false, o que significa que apenas o cabeçalho da mensagem é registado. Esta definição afeta todos os níveis de registo de mensagens (serviço, transporte e malformados).
logMalformedMessages Um valor booleano que especifica se as mensagens mal formadas são registadas. As mensagens mal formadas não contam para o maxMessagesToLog. A predefinição é false.
logMessagesAtServiceLevel Um valor booleano que especifica se as mensagens são rastreadas ao nível do serviço (antes de transformações relacionadas com encriptação e transporte). A predefinição é false.
logMessagesAtTransportLevel Um valor booleano que especifica se as mensagens são rastreadas ao nível do transporte. Todos os filtros especificados no ficheiro de configuração são aplicados e apenas as mensagens que correspondam aos filtros são rastreadas. A predefinição é false.
maxMessagesToLog Um número inteiro positivo que especifica o número máximo de mensagens a registar. A predefinição é 1000.
maxSizeOfMessageToLog Um número inteiro positivo que especifica o tamanho máximo, em bytes, de uma mensagem a registar. As mensagens maiores do que o limite não serão registadas. Esta definição afeta todos os níveis de rastreio. A predefinição é 262144(0x4000).

Elementos Subordinados

Elemento Descrição
filtros O filters elemento contém uma coleção de filtros XPath. Quando o registo de mensagens de transporte estiver ativado (logMessagesAtTransportLevel é true), apenas as mensagens correspondentes aos filtros serão registadas.

Os filtros são aplicados apenas na camada de transporte. O nível de serviço e o registo de mensagens mal formados não são afetados pelos filtros.

O único atributo para este elemento, filter, é um XpathFilter.

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

Elementos Principais

Elemento Descrição
diagnósticos Define as definições do WCF para inspeção e controlo de tempo de execução para o administrador.

Observações

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

Os filtros XPath podem ser adicionados para registar mensagens específicas nos níveis de transporte e serviço. Se não forem definidos filtros, todas as mensagens serão registadas. Os filtros são aplicados apenas aos cabeçalhos da mensagem. O corpo é ignorado. O WCF ignora o corpo da mensagem para melhorar o desempenho. Se quiser filtrar com base no conteúdo do corpo, pode criar um serviço de escuta personalizado com um filtro que o faça.

Tem de criar um serviço de escuta de rastreio para ativar o rastreio de mensagens. O próprio serviço de escuta pode ser qualquer serviço de escuta que funcione com a arquitetura de System.Diagnostics rastreio. O exemplo seguinte demonstra como criar um serviço de escuta.

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

Exemplo

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

Veja também