Aracılığıyla paylaş


<messageLogging>

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

<Yapılandırma>
  <system.serviceModel>
    <Tanılama>
      <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>

Öznitelikler ve Öğeler

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

Öznitelikler

Öznitelik Açıklama
logEntireMessage İletinin tamamının (ileti üst bilgisi ve gövde) günlüğe kaydedilip kaydedilmediğini belirten bir 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 yanlış biçimlendirilmiş) etkiler.
logMalformedMessages Hatalı biçimlendirilmiş iletilerin günlüğe kaydedilip kaydedilmediğini belirten boole değeri. Hatalı biçimlendirilmiş iletiler öğesine doğru maxMessagesToLogsayılmaz. Varsayılan değer: false.
logMessagesAtServiceLevel İletilerin hizmet düzeyinde izlenip izlenmeyeceğini belirten bir Boole değeri (şifreleme ve aktarımla ilgili dönüşümlerden önce). Varsayılan değer: false.
logMessagesAtTransportLevel İletilerin aktarım düzeyinde izlenip izlenmeyeceğini belirten bir 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 ileti sayısı üst sınırı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 Açıklama
filtreler filters öğesi bir XPath filtreleri koleksiyonunu barındırıyor. Aktarım iletisi günlüğü etkinleştirildiğinde (logMessagesAtTransportLevel ise true), yalnızca filtrelerle eşleşen iletiler günlüğe kaydedilir.

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

Bu öğenin filtertek özniteliği olan XpathFilter'dır.

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

Üst Öğeler

Öğe Açıklama
tanılama Yönetici için çalışma zamanı denetimi ve 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. Tanımlı filtre yoksa, 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>

Örnek

<messageLogging logEntireMessage="true"
                logMalformedMessages="true"
                logMessagesAtServiceLevel="true"
                logMessagesAtTransportLevel="true"
                maxMessagesToLog="42"
                maxSizeOfMessageToLog="42">
  <filters>
    <clear />
  </filters>
</messageLogging>

Ayrıca bkz.