Exporter (0) Imprimer
Développer tout

CorrelationManager, classe

Mise à jour : novembre 2007

Met en correspondance des traces qui font partie d'une transaction logique.

Espace de noms :  System.Diagnostics
Assembly :  System (dans System.dll)

public class CorrelationManager
public class CorrelationManager
public class CorrelationManager

Les traces générées à partir d'une opération logique unique peuvent être balisées avec une identité à opération unique afin de les distinguer des traces issues d'une opération logique différente. Par exemple, il peut être utile de grouper des traces correspondantes par demande ASP.NET. La classe CorrelationManager fournit des méthodes utilisées pour stocker une identité d'opération logique dans un contexte lié par thread et baliser automatiquement chaque événement de trace généré par le thread dont l'identité est stockée.

Les opérations logiques peuvent également être imbriquées. La propriété LogicalOperationStack expose la pile des identités d'opération logique imbriquées. Chaque appel à la méthode StartLogicalOperation pousse une nouvelle identité d'opération logique sur la pile. Chaque appel à la méthode StopLogicalOperation extrait une identité d'opération logique de la pile par un pop.

Remarque :

Les identités d'opération logique sont des objets qui permettent l'utilisation d'un type pour une identité d'opération logique.

L'exemple de code suivant montre l'utilisation de la classe CorrelationManager en identifiant l'opération logique associée à un événement tracé. Deux opérations logiques sont démarrées, un dans le thread principal et l'autre dans un thread de travail. Un événement d'erreur est enregistré pour chaque opération logique.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Threading;

namespace CorrlationManager
{
    class Program
    {
        //private static TraceSource ts;
        static void Main(string[] args)
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Start the logical operation on the Main thread.
            Trace.CorrelationManager.StartLogicalOperation("MainThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Thread t = new Thread(new ThreadStart(ThreadProc));
            // Start the worker thread.
            t.Start();
            // Give the worker thread a chance to execute.
            Thread.Sleep(1000);
            Trace.CorrelationManager.StopLogicalOperation();
        }
        public static void ThreadProc()
        {
            TraceSource ts = new TraceSource("MyApp");
            int i = ts.Listeners.Add(new ConsoleTraceListener());
            ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
            ts.Switch = new SourceSwitch("MyAPP", "Verbose");
            // Add another logical operation.
            Trace.CorrelationManager.StartLogicalOperation("WorkerThread");
            ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
            Trace.CorrelationManager.StopLogicalOperation();
        }
    }
}
// This sample generates the following output:
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=MainThread
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=WorkerThread, MainThread


System.Object
  System.Diagnostics.CorrelationManager

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft