Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Element definiert die Einstellungen für die Nachrichtenprotokollierungsfunktionen von Windows Communication Foundation (WCF).
<Konfiguration>
<system.serviceModel>
<Diagnose>
<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>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
logEntireMessage |
Ein boolescher Wert, der angibt, ob die gesamte Nachricht (Nachrichtenkopf und Textkörper) protokolliert wird. Der Standardwert ist false, was bedeutet, dass nur der Nachrichtenkopf protokolliert wird. Diese Einstellung wirkt sich auf alle Nachrichtenprotokollierungsebenen (Dienst, Transport und Falschform) aus. |
logMalformedMessages |
Ein boolescher Wert, der angibt, ob falsch formatierte Nachrichten protokolliert werden. Falsch formatierte Nachrichten zählen nicht in Richtung des maxMessagesToLog. Der Standardwert lautet false. |
logMessagesAtServiceLevel |
Ein boolescher Wert, der angibt, ob Nachrichten auf Dienstebene nachverfolgt werden (vor Verschlüsselungs- und Transporttransformationen). Der Standardwert lautet false. |
logMessagesAtTransportLevel |
Ein boolescher Wert, der angibt, ob Nachrichten auf Transportebene nachverfolgt werden. Alle in der Konfigurationsdatei angegebenen Filter werden angewendet, und nur Nachrichten, die den Filtern entsprechen, werden nachverfolgt. Der Standardwert lautet false. |
maxMessagesToLog |
Eine positive ganze Zahl, die die maximale Anzahl von Zu protokollierenden Nachrichten angibt. Der Standardwert lautet 1000. |
maxSizeOfMessageToLog |
Eine positive ganze Zahl, die die maximale Größe einer zu protokollierenden Nachricht in Bytes angibt. Nachrichten, die größer als der Grenzwert sind, werden nicht protokolliert. Diese Einstellung wirkt sich auf alle Nachverfolgungsebenen aus. Der Standardwert ist 262144(0x4000). |
Untergeordnete Elemente
| Element | Description |
|---|---|
| filters | Das filters Element enthält eine Auflistung von XPath-Filtern. Wenn die Transportnachrichtenprotokollierung aktiviert ist (logMessagesAtTransportLevel ist true), werden nur Nachrichten protokolliert, die den Filtern entsprechen.Filter werden nur auf der Transportebene angewendet. Die Protokollierung auf Dienstebene und falsch formatierte Nachrichten wird von Filtern nicht beeinflusst. Das einzige Attribut für dieses Element ist filterein XpathFilter.<filters> <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope">/soap:Envelope</add> </filters> |
Übergeordnete Elemente
| Element | Description |
|---|---|
| diagnostics | Definiert WCF-Einstellungen für die Laufzeitüberprüfung und -kontrolle für den Administrator. |
Bemerkungen
Nachrichten werden auf drei verschiedenen Ebenen im Stapel protokolliert: Dienst, Transport und falsch formatiert. Jede Ebene kann separat aktiviert werden.
XPath-Filter können hinzugefügt werden, um bestimmte Nachrichten auf Transport- und Dienstebene zu protokollieren. Wenn keine Filter definiert sind, werden alle Nachrichten protokolliert. Filter werden nur auf die Kopfzeilen der Nachricht angewendet. Der Textkörper wird ignoriert. WCF ignoriert den Nachrichtentext, um die Leistung zu verbessern. Wenn Sie basierend auf dem Inhalt des Textkörpers filtern möchten, können Sie einen benutzerdefinierten Listener mit einem Filter erstellen, der dies tut.
Sie müssen einen Ablaufverfolgungslistener erstellen, um die Nachrichtenablaufverfolgung zu aktivieren. Der Listener selbst kann jeder Listener sein, der mit der System.Diagnostics Ablaufverfolgungsarchitektur funktioniert. Im folgenden Beispiel wird veranschaulicht, wie ein solcher Listener erstellt wird.
<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>
Example
<messageLogging logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="42"
maxSizeOfMessageToLog="42">
<filters>
<clear />
</filters>
</messageLogging>