Partager via


<messageLogging>

Cet élément définit les paramètres des fonctionnalités de journalisation des messages de Windows Communication Foundation (WCF).

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

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributes

Caractéristique Descriptif
logEntireMessage Valeur booléenne qui spécifie si l’intégralité du message (en-tête et corps du message) est journalisée. La valeur par défaut est false, ce qui signifie que seul l’en-tête de message est journalisé. Ce paramètre affecte tous les niveaux de journalisation des messages (service, transport et mal formés).
logMalformedMessages Valeur booléenne qui spécifie si les messages mal formés sont enregistrés. Les messages mal formés ne comptent pas vers le maxMessagesToLog. La valeur par défaut est false.
logMessagesAtServiceLevel Valeur booléenne qui spécifie si les messages sont suivis au niveau du service (avant les transformations liées au chiffrement et au transport). La valeur par défaut est false.
logMessagesAtTransportLevel Valeur booléenne qui spécifie si les messages sont suivis au niveau du transport. Tous les filtres spécifiés dans le fichier de configuration sont appliqués et seuls les messages correspondant aux filtres sont suivis. La valeur par défaut est false.
maxMessagesToLog Entier positif qui spécifie le nombre maximal de messages à consigner. La valeur par défaut est 1000.
maxSizeOfMessageToLog Entier positif qui spécifie la taille maximale, en octets, d’un message à consigner. Les messages supérieurs à la limite ne seront pas enregistrés. Ce paramètre affecte tous les niveaux de trace. La valeur par défaut est 262144(0x4000).

Éléments enfants

Élément Descriptif
filters L’élément filters contient une collection de filtres XPath. Lorsque la journalisation des messages de transport est activée (logMessagesAtTransportLevel est true), seuls les messages correspondant aux filtres sont enregistrés.

Les filtres sont appliqués uniquement au niveau de la couche de transport. Le niveau de service et la journalisation des messages mal formés ne sont pas affectés par les filtres.

Le seul attribut de cet élément, est filterun XpathFilter.

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

Éléments parents

Élément Descriptif
diagnostics Définit les paramètres WCF pour l’inspection et le contrôle du runtime pour l’administrateur.

Remarques

Les messages sont enregistrés à trois niveaux différents dans la pile : service, transport et mal formés. Chaque niveau peut être activé séparément.

Les filtres XPath peuvent être ajoutés pour consigner des messages spécifiques aux niveaux de transport et de service. Si aucun filtre n’est défini, tous les messages sont enregistrés. Les filtres sont appliqués uniquement aux en-têtes du message. Le corps est ignoré. WCF ignore le corps du message pour améliorer les performances. Si vous souhaitez filtrer en fonction du contenu du corps, vous pouvez créer un écouteur personnalisé avec un filtre qui le fait.

Vous devez créer un écouteur de suivi pour activer le suivi des messages. L’écouteur lui-même peut être n’importe quel écouteur qui fonctionne avec l’architecture de System.Diagnostics suivi. L’exemple suivant montre comment créer un tel écouteur.

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

Voir aussi