Dela via


<messageLogging>

Det här elementet definierar inställningarna för meddelandeloggningsfunktionerna i Windows Communication Foundation (WCF).

<Konfiguration>
  <system.serviceModel>
    <Diagnostik>
      <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>

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
logEntireMessage Ett booleskt värde som anger om hela meddelandet (meddelanderubriken och brödtexten) loggas. Standardvärdet är false, vilket innebär att endast meddelandehuvudet loggas. Den här inställningen påverkar alla loggningsnivåer för meddelanden (tjänst, transport och felaktiga).
logMalformedMessages Ett booleskt värde som anger om felaktiga meddelanden loggas. Felaktiga meddelanden räknas inte mot maxMessagesToLog. Standardvärdet är false.
logMessagesAtServiceLevel Ett booleskt värde som anger om meddelanden spåras på tjänstnivå (före krypterings- och transportrelaterade transformeringar). Standardvärdet är false.
logMessagesAtTransportLevel Ett booleskt värde som anger om meddelanden spåras på transportnivå. Alla filter som anges i konfigurationsfilen tillämpas och endast meddelanden som matchar filtren spåras. Standardvärdet är false.
maxMessagesToLog Ett positivt heltal som anger det maximala antalet meddelanden som ska loggas. Standardvärdet är 1000.
maxSizeOfMessageToLog Ett positivt heltal som anger den maximala storleken i byte för ett meddelande som ska loggas. Meddelanden som är större än gränsen loggas inte. Den här inställningen påverkar alla spårningsnivåer. Standardvärdet är 262144(0x4000).

Underordnade element

Element Beskrivning
filter Elementet filters innehåller en samling XPath-filter. När loggning av transportmeddelanden är aktiverat (logMessagesAtTransportLevel är true), loggas endast meddelanden som matchar filtren.

Filter tillämpas endast på transportlagret. Tjänstnivå och felaktig meddelandeloggning påverkas inte av filter.

Det enda attributet för det här elementet, filter, är ett XpathFilter.

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

Överordnade element

Element Beskrivning
diagnostik Definierar WCF-inställningar för körningsgranskning och kontroll för administratören.

Kommentarer

Meddelanden loggas på tre olika nivåer i stacken: tjänst, transport och felaktigt format. Varje nivå kan aktiveras separat.

XPath-filter kan läggas till för att logga specifika meddelanden på transport- och tjänstnivå. Om inga filter har definierats loggas alla meddelanden. Filter tillämpas endast på meddelandehuvudena. Brödtexten ignoreras. WCF ignorerar meddelandetexten för att förbättra prestanda. Om du vill filtrera baserat på innehållet i brödtexten kan du skapa en anpassad lyssnare med ett filter som gör det.

Du måste skapa en spårningslyssnare för att aktivera meddelandespårning. Lyssnaren kan vara vilken lyssnare som helst som fungerar med spårningsarkitekturen System.Diagnostics . I följande exempel visas hur du skapar en sådan lyssnare.

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

Exempel

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

Se även