<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 , filter jest 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>