Partager via


Suivi et journalisation des messages

L’exemple TracingAndLogging montre comment activer le suivi et la journalisation des messages. Les traces et les journaux des messages résultants sont affichés à l’aide de l’outil Visionneuse de suivi de service (SvcTraceViewer.exe). Cet exemple est basé sur la section Getting Started.

Remarque

La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.

Traçage

Windows Communication Foundation (WCF) utilise le mécanisme de suivi défini dans l’espace System.Diagnostics de noms. Dans ce modèle de suivi, les données de trace sont produites par les sources de trace que les applications implémentent. Chaque source est identifiée par un nom. Les consommateurs de trace créent des écouteurs de trace pour les sources de trace pour lesquelles ils souhaitent récupérer des informations. Pour recevoir des données de trace, vous devez créer un écouteur pour la source de trace. Dans WCF, cela peut être effectué en ajoutant le code suivant au fichier de configuration du service ou du client en définissant la source switchValuede trace du modèle de service :

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>

Pour plus d’informations sur les sources de trace, consultez la section Source de trace dans la rubrique Configuration du suivi .

Suivi et propagation des activités

L’activation ActivityTracing et propagateActivity la définition true dans les system.ServiceModel sources de trace pour le client et le service fournissent la corrélation des traces dans les unités logiques de traitement (activités), entre les activités au sein des points de terminaison (via les transferts d’activité) et entre les activités couvrant plusieurs points de terminaison (via la propagation d’ID d’activité).

Ces trois mécanismes (activités, transferts et propagation) peuvent vous aider à localiser la cause racine d’une erreur plus rapidement à l’aide de l’outil Service Trace Viewer. Pour plus d’informations, consultez Utilisation de la visionneuse de traces de service pour afficher les traces corrélées et la résolution des problèmes.

Il est possible d’étendre le suivi fourni par ServiceModel en créant des traces d’activité définies par l’utilisateur. Le suivi d’activité défini par l’utilisateur permet à l’utilisateur de créer des activités de suivi pour :

  • Regrouper les traces en unités logiques de travail.

  • Mettre en corrélation les activités par le biais des transferts et de la propagation.

  • Réduit le coût de performances du suivi WCF (par exemple, le coût d’espace disque d’un fichier journal).

Pour plus d’informations sur le suivi d’activité défini par l’utilisateur, consultez l’exemple Extension du suivi .

Journalisation des messages

La journalisation des messages peut être activée à la fois sur le client et le service de n’importe quelle application WCF. Pour activer la journalisation des messages, vous devez ajouter le code suivant au client ou au service :

<configuration>
  <system.serviceModel>
    <diagnostics>
      <!-- Enable Message Logging here. -->
      <!-- log all messages received or sent at the transport or service model levels -->
      <messageLogging logEntireMessage="true"
                      maxMessagesToLog="300"
                      logMessagesAtServiceLevel="true"
                      logMalformedMessages="true"
                      logMessagesAtTransportLevel="true" />
    </diagnostics>
  </system.serviceModel>
</configuration>

Lorsqu’un message est enregistré, le type de trace dépend du fait qu’il soit suivi au niveau du client ou du serveur. Par exemple, un message « Add » envoyé à un client est suivi sous la catégorie « TransportWrite » au niveau du client, tandis que le même message est suivi sous la catégorie « TransportRead » au niveau du service.

Configurez l’écouteur de trace en ajoutant le code suivant à la System.Diagnostics section du fichier App.config du client ou du fichier Web.config du service :

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information,ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

Les messages sont enregistrés au format XML dans le répertoire cible spécifié dans le fichier de configuration.

Remarque

Les fichiers de trace ne sont pas créés sans créer initialement le répertoire du journal. Vérifiez que le répertoire C :\logs\ existe ou spécifiez un autre répertoire de journalisation dans la configuration de l’écouteur. Pour plus d’informations, consultez les instructions de configuration initiales à la fin de ce document.

Pour plus d’informations sur la journalisation des messages, consultez la rubrique Configuration de la journalisation des messages .

Pour configurer, générer et exécuter l’exemple

  1. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. Avant d’exécuter l’exemple suivi et journalisation des messages, créez le répertoire C :\logs\ pour que le service écrive les fichiers .svclog. Le nom de ce répertoire est défini dans le fichier de configuration comme chemin d’accès pour les traces et les messages à journaliser et peut être modifié. Donnez à l’utilisateur un accès en écriture au service réseau dans le répertoire des journaux.

  3. Pour générer l’édition C#, C++ ou Visual Basic .NET de la solution, suivez les instructions de création des exemples Windows Communication Foundation.

  4. Pour exécuter l’exemple dans une configuration monoposte ou multiposte, suivez les instructions de Exécution des exemples Windows Communication Foundation.

Voir aussi