<messageLogging>
この要素は Windows Communication Foundation (WCF) のメッセージ ログ機能の設定を定義します。
<system.serviceModel>
<diagnostics>
<messageLogging>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="Boolean"
logMalformedMessages="Boolean"
logMessagesAtServiceLevel="Boolean"
logMessagesAtTransportLevel="Boolean"
maxMessagesToLog="Integer"
maxSizeOfMessageToLog="Integer" >
<filters>
<clear />
</filters>
</messageLogging>
</diagnostics>
</system.serviceModel>
属性および要素
属性
属性 | 説明 |
---|---|
logEntireMessage |
メッセージ全体 (メッセージ ヘッダーと本文) を記録するかどうかを指定するブール値。既定は false で、メッセージ ヘッダーだけが記録されます。この設定は、すべてのメッセージ ログ レベル (サービス、トランスポート、および不正) に影響を与えます。 |
logMalformedMessages |
無効なメッセージを記録するかどうかを指定するブール値。無効なメッセージは、maxMessagesToLog にカウントされません。既定値は false です。 |
logMessagesAtServiceLevel |
(暗号化およびトランスポートに関連する変換の前に) メッセージをサービス レベルでトレースするかどうかを指定するブール値。既定の値は false です。 |
logMessagesAtTransportLevel |
メッセージをトランスポート レベルでトレースするかどうかを指定するブール値。構成ファイルに指定されたフィルタが適用され、フィルタに一致するメッセージだけがトレースされます。既定値は false です。 |
maxMessagesToLog |
記録するメッセージの最大数を指定する正の整数。既定値は 1000 です。 |
maxSizeOfMessageToLog |
記録するメッセージの最大サイズ (バイト単位) を指定する正の整数。サイズが制限より大きなメッセージは、記録されません。この設定は、すべてのトレース レベルに影響を与えます。既定値は 262144 (0x4000) です。 |
子要素
要素 | 説明 |
---|---|
フィルタ |
filters 要素には、XPath フィルタのコレクションが保持されます。トランスポート メッセージ ログが有効な場合 (logMessagesAtTransportLevel が true)、フィルタに一致するメッセージだけが記録されます。 フィルタは、トランスポート層でのみ適用されます。サービス レベルおよび形式が正しくないメッセージ ログ記録は、フィルタの影響を受けません。 この要素の唯一の属性である filter は、XpathFilter です。
|
親要素
要素 | 説明 |
---|---|
diagnostics |
管理者が行うランタイムの検査と管理の WCF 設定を定義します。 |
解説
メッセージは、サービス、トランスポート、および不正の 3 種類のレベルで記録されます。各レベルは、個別にアクティブにできます。
XPath フィルタは、トランスポート レベルとサービス レベルで特定のメッセージを記録するために追加できます。フィルタが定義されていない場合、すべてのメッセージが記録されます。フィルタは、メッセージのヘッダーにのみ適用されます。本文は無視されます。WCF は、パフォーマンスを強化するためにメッセージ本文を無視します。本文の内容に基づいてフィルタを適用する場合は、そのためのフィルタを備えたカスタム リスナを作成できます。
メッセージ トレースをアクティブ化するために、トレース リスナを作成する必要があります。リスナ自体には、System.Diagnostics トレース アーキテクチャで動作するリスナを指定できます。次の例は、そのようなリスナの作成方法を示します。
<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>
例
<messageLogging logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="42"
maxSizeOfMessageToLog="42">
<filters>
<clear />
</filters>
</messageLogging>
関連項目
リファレンス
DiagnosticSection
System.ServiceModel.Diagnostics
MessageLogging
MessageLoggingElement