Aracılığıyla paylaş


<messageLogging>

Bu öğe, Windows Communication Foundation'ın (WCF) ileti günlüğü özellikleri için ayarları tanımlar.

<configuration>
  <system.serviceModel>
    <diagnostics>
      <messageLogging>

Sözdizimi

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

Öznitelikler ve Öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Attributes

Özellik Description
logEntireMessage İletinin tamamının (ileti üst bilgisi ve gövde) günlüğe kaydedilip kaydedilmediğini belirten boole değeri. Varsayılan değer olan false, yalnızca ileti üst bilgisinin günlüğe kaydedildiği anlamına gelir. Bu ayar tüm ileti günlüğü düzeylerini (hizmet, aktarım ve hatalı biçimlendirilmiş) etkiler.
logMalformedMessages Hatalı biçimlendirilmiş iletilerin günlüğe kaydedilip kaydedilmediğini belirten boole değeri. Hatalı biçimlendirilmiş iletiler için sayılmaz maxMessagesToLog. Varsayılan değer: false.
logMessagesAtServiceLevel İletilerin hizmet düzeyinde izlenip izlenmeyeceğini belirten boole değeri (şifreleme ve aktarımla ilgili dönüşümlerden önce). Varsayılan değer: false.
logMessagesAtTransportLevel İletilerin aktarım düzeyinde izlenip izlenmediğini belirten boole değeri. Yapılandırma dosyasında belirtilen tüm filtreler uygulanır ve yalnızca filtrelerle eşleşen iletiler izlenir. Varsayılan değer: false.
maxMessagesToLog Günlüğe kaydedilecek en fazla ileti sayısını belirten pozitif bir tamsayı. Varsayılan değer 1000'dir.
maxSizeOfMessageToLog Günlüğe kaydedilecek iletinin bayt cinsinden en büyük boyutunu belirten pozitif bir tamsayı. Sınırdan büyük iletiler günlüğe kaydedilmez. Bu ayar tüm izleme düzeylerini etkiler. Varsayılan değer 262144(0x4000).

Alt Öğeler

Öğe Description
filters filters öğesi bir XPath filtreleri koleksiyonunu barındırıyor. Aktarım iletisi günlüğü etkinleştirildiğinde (logMessagesAtTransportLevel is true), yalnızca filtrelerle eşleşen iletiler günlüğe kaydedilir.

Filtreler yalnızca aktarım katmanında uygulanır. Hizmet düzeyi ve hatalı biçimlendirilmiş ileti günlüğü filtrelerden etkilenmez.

Bu öğenin tek özniteliği olan filterXpathFilter'dır.

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

Üst Öğeler

Öğe Description
diagnostics Çalışma zamanı denetimi ve yönetici denetimi için WCF ayarlarını tanımlar.

Açıklamalar

İletiler yığında üç farklı düzeyde günlüğe kaydedilir: hizmet, aktarım ve yanlış biçimlendirilmiş. Her düzey ayrı ayrı etkinleştirilebilir.

Aktarım ve hizmet düzeylerinde belirli iletileri günlüğe kaydetmek için XPath filtreleri eklenebilir. Hiçbir filtre tanımlanmamışsa, tüm iletiler günlüğe kaydedilir. Filtreler yalnızca iletinin üst bilgilerine uygulanır. Gövde yoksayılır. WCF, performansı geliştirmek için ileti gövdesini yoksayar. Gövdenin içeriğine göre filtrelemek istiyorsanız, bunu sağlayan bir filtreye sahip özel bir dinleyici oluşturabilirsiniz.

İleti izlemeyi etkinleştirmek için bir izleme dinleyicisi oluşturmanız gerekir. Dinleyicinin kendisi, izleme mimarisiyle System.Diagnostics çalışan herhangi bir dinleyici olabilir. Aşağıdaki örnekte böyle bir dinleyicinin nasıl oluşturulacağı gösterilmektedir.

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

Ayrıca bakınız