<messageLogging>
Este elemento define as configurações para as capacidades de log de mensagem da WCF (Windows Communication Foundation).
<configuration>
<system.serviceModel>
<diagnostics>
<messageLogging>
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 seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Atributo | Descrição |
---|---|
logEntireMessage |
Um valor booliano que especifica se a mensagem inteira (cabeçalho da mensagem e corpo) é 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 malformado). |
logMalformedMessages |
Um valor booliano que especifica se as mensagens malformadas são registradas em log. As 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 a criptografia e transporte). O padrão é false . |
logMessagesAtTransportLevel |
Um valor booliano que especifica se as mensagens são rastreadas no nível do 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 a gravar em log. Mensagens maiores do que o limite não serão registradas em log. Essa configuração afeta todos os níveis de rastreamento. O padrão é 262144(0x4000). |
Elementos filho
Elemento | Descrição |
---|---|
filtros | O elemento filters 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 malformadas 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 | Descrição |
---|---|
diagnóstico | Define as configurações do WCF para inspeção e controle de runtime para o administrador. |
Comentários
As mensagens são registradas 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 a mensagens específicas de log 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 tal 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>
Exemplo
<messageLogging logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="42"
maxSizeOfMessageToLog="42">
<filters>
<clear />
</filters>
</messageLogging>