<messageLogging>

Tento element definuje nastavení pro možnosti protokolování zpráv technologie Windows Communication Foundation (WCF).

<Konfigurace>
  <System.servicemodel>
    <Diagnostika>
      <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>

Atributy a elementy

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
logEntireMessage Logická hodnota, která určuje, zda je protokolována celá zpráva (záhlaví a text zprávy). Výchozí hodnota je false, což znamená, že se protokoluje pouze záhlaví zprávy. Toto nastavení má vliv na všechny úrovně protokolování zpráv (služba, přenos a poškozené).
logMalformedMessages Logická hodnota, která určuje, zda jsou poškozeny zprávy protokolovány. Chybně vytvořené zprávy se nezapočítávají do maxMessagesToLog. Výchozí formát je false.
logMessagesAtServiceLevel Logická hodnota, která určuje, jestli se zprávy trasují na úrovni služby (před transformacemi souvisejícími s šifrováním a přenosem). Výchozí formát je false.
logMessagesAtTransportLevel Logická hodnota, která určuje, zda jsou zprávy trasovány na úrovni přenosu. Použijí se všechny filtry zadané v konfiguračním souboru a trasují se pouze zprávy, které odpovídají filtrům. Výchozí formát je false.
maxMessagesToLog Kladné celé číslo, které určuje maximální počet zpráv, které se mají protokolovat. Výchozí hodnota je 1 000.
maxSizeOfMessageToLog Kladné celé číslo, které určuje maximální velikost (v bajtech) zprávy, která se má protokolovat. Zprávy větší, než je limit, se nebudou protokolovat. Toto nastavení má vliv na všechny úrovně trasování. Výchozí hodnota je 262144(0x4000).

Podřízené elementy

Element Popis
filtry Element filters obsahuje kolekci filtrů XPath. Pokud je protokolování transportních zpráv povolené (logMessagesAtTransportLevel je true), budou se protokolovat pouze zprávy odpovídající filtrům.

Filtry se použijí jenom v přenosové vrstvě. Úroveň služby a protokolování poškozených zpráv nejsou filtry ovlivněny.

Jediný atribut pro tento prvek, filterje XpathFilter.

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

Nadřazené elementy

Element Popis
Diagnostika Definuje nastavení WCF pro kontrolu za běhu a řízení pro správce.

Poznámky

Zprávy se protokolují na třech různých úrovních v zásobníku: služba, přenos a poškozený. Každou úroveň lze aktivovat samostatně.

Filtry XPath lze přidat do protokolování konkrétních zpráv na úrovni přenosu a služby. Pokud nejsou definovány žádné filtry, protokolují se všechny zprávy. Filtry se použijí jenom na záhlaví zprávy. Tělo je ignorováno. WCF ignoruje text zprávy za účelem zvýšení výkonu. Pokud chcete filtrovat podle obsahu textu, můžete vytvořit vlastní naslouchací proces s filtrem, který to dělá.

K aktivaci trasování potřebujete vytvořit naslouchací proces trasování. Samotný naslouchací proces může být libovolný naslouchací proces, který pracuje s architekturou System.Diagnostics trasování. Následující příklad ukazuje, jak vytvořit takový naslouchací proces.

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

Příklad

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

Viz také