Partager via


Extending Tracing

Cet exemple montre comment étendre la fonctionnalité de suivi Windows Communication Foundation (WCF) en écrivant les suivis de l'activité définie par l'utilisateur dans le code du client et du service. Cela permet à l'utilisateur de créer des activités de suivi et de regrouper les suivis dans des unités de travail logiques. Il est également possible de mettre en corrélation des activités à travers des transferts (au sein du même point de terminaison) et la propagation (sur plusieurs points de terminaison). Dans cet exemple, le suivi est activé à la fois pour le client et pour le service. Pour plus d'informations sur l'activation du suivi dans les fichiers de configuration du client et du service, consultez Tracing and Message Logging.

Aa354511.note(fr-fr,VS.90).gifRemarque :
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent en fin de rubrique.

Cet exemple est basé sur l'Getting Started, exemple.

Suivi et propagation d'activité

Le suivi d'activité défini par l'utilisateur permet à l'utilisateur de créer ses propres activités de suivi pour regrouper les suivis dans les unités de travail logiques, mettre en corrélation des activités par transfert et propagation et amoindrissez les coûts de performance du suivi WCF (le coût en espace disque d'un fichier journal, par exemple).

Ajout de sources personnalisées

Les suivis définis par l'utilisateur peuvent être ajoutés à la fois au code du client et du service. L'ajout de sources de suivi aux fichiers de configuration du client ou du service permet l'enregistrement et l'affichage de ces suivis personnalisés dans l'Service Trace Viewer Tool. Le code suivant montre comment ajouter une source de suivi définie par l'utilisateur nommée ServiceCalculatorTraceSource au fichier de configuration.

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
       <add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" traceOutputOptions="Callstack">
            <filter type="" />
        </add>
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>....
....

Mise en corrélation des activités

Pour mettre directement en corrélation des activités sur plusieurs points de terminaison, l'attribut propagateActivity doit avoir la valeur true dans la source du suivi System.ServiceModel. En outre, le suivi d'activité ServiceModel doit être désactivé pour propager des suivis sans traverser des activités WCF. C'est ce qu'illustre l'exemple de code suivant.

Aa354511.note(fr-fr,VS.90).gifRemarque :
La désactivation du suivi d'activité ServiceModel n'équivaut pas à désactiver le niveau de suivi, dénoté par la propriété switchValue.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

Réduction des coûts de performance

Le fait de désactiver ActivityTracing dans la source de suivi System.ServiceModel génère un fichier de suivi qui contient uniquement les suivis d'activité définis par l'utilisateur, sans inclure les suivis d'activité ServiceModel. Ainsi, le fichier journal est beaucoup moins volumineux. Toutefois, la possibilité de mettre en corrélation les suivis de traitement WCF est perdue.

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

  1. Assurez-vous d'avoir effectué la procédure figurant à la section Procédure d'installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l'édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Génération des exemples Windows Communication Foundation.

  3. Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.