<messageLogging>

Ten element definiuje ustawienia funkcji rejestrowania komunikatów w programie Windows Communication Foundation (WCF).

<Konfiguracji>
  <System.servicemodel>
    <Diagnostyka>
      <messageLogging>

Składnia

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

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
logEntireMessage Wartość logiczna określająca, czy jest rejestrowany cały komunikat (nagłówek i treść wiadomości). Wartość domyślna to false, co oznacza, że tylko nagłówek komunikatu jest rejestrowany. To ustawienie ma wpływ na wszystkie poziomy rejestrowania komunikatów (usługi, transportu i źle sformułowane).
logMalformedMessages Wartość logiczna określająca, czy źle sformułowane komunikaty są rejestrowane. Źle sformułowane komunikaty nie są liczone w kierunku maxMessagesToLog. Wartość domyślna to false.
logMessagesAtServiceLevel Wartość logiczna określająca, czy komunikaty są śledzone na poziomie usługi (przed przekształceniami szyfrowania i transportu). Wartość domyślna to false.
logMessagesAtTransportLevel Wartość logiczna określająca, czy komunikaty są śledzone na poziomie transportu. Wszystkie filtry określone w pliku konfiguracji są stosowane i śledzone są tylko komunikaty zgodne z filtrami. Wartość domyślna to false.
maxMessagesToLog Dodatnia liczba całkowita określająca maksymalną liczbę komunikatów do zarejestrowania. Wartość domyślna to 1000.
maxSizeOfMessageToLog Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu do zarejestrowania w bajtach. Komunikaty większe niż limit nie zostaną zarejestrowane. To ustawienie ma wpływ na wszystkie poziomy śledzenia. Wartość domyślna to 262144(0x4000).

Elementy podrzędne

Element Opis
filtry Element filters zawiera kolekcję filtrów XPath. Po włączeniu rejestrowania komunikatów transportu (logMessagesAtTransportLevel to true) będą rejestrowane tylko komunikaty pasujące do filtrów.

Filtry są stosowane tylko w warstwie transportu. Na poziom usług i źle sformułowane rejestrowanie komunikatów nie ma wpływu filtry.

Jedynym atrybutem dla tego elementu , filterjest XpathFilter.

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

Elementy nadrzędne

Element Opis
Diagnostyka Definiuje ustawienia programu WCF na potrzeby inspekcji i kontroli środowiska uruchomieniowego dla administratora.

Uwagi

Komunikaty są rejestrowane na trzech różnych poziomach w stosie: usługa, transport i źle sformułowane. Każdy poziom można aktywować oddzielnie.

Filtry XPath można dodawać do rejestrowania określonych komunikatów na poziomach transportu i usług. Jeśli nie zdefiniowano żadnych filtrów, wszystkie komunikaty są rejestrowane. Filtry są stosowane tylko do nagłówków wiadomości. Treść jest ignorowana. Program WCF ignoruje treść komunikatu, aby zwiększyć wydajność. Jeśli chcesz filtrować na podstawie zawartości treści, możesz utworzyć odbiornik niestandardowy z filtrem, który to robi.

Aby aktywować śledzenie komunikatów, należy utworzyć odbiornik śledzenia. Sam odbiornik może być dowolnym odbiornikiem, który współpracuje z architekturą System.Diagnostics śledzenia. W poniższym przykładzie pokazano, jak utworzyć taki odbiornik.

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

Przykład

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

Zobacz także