共用方式為


<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

filters 項目含有 XPath 篩選條件的集合。當啟用傳輸訊息記錄時 (logMessagesAtTransportLeveltrue),將只記錄符合篩選條件的訊息。

篩選條件只會在傳輸層套用。服務等級和格式錯誤訊息記錄不受篩選條件的影響。

filter 這個項目的唯一屬性為 XpathFilter。

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

父項目

項目 描述

diagnostics

為系統管理員定義執行階段檢查和控制的 WCF 設定。

備註

訊息會記錄在堆疊中的三個不同層級:服務、傳輸和格式錯誤。每個層級可個別啟動。

可以加入 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

其他資源

Message Loggging