Partager via


DefaultTraceListener Classe

Définition

Fournit les méthodes de sortie et le comportement par défaut pour le suivi.

public ref class DefaultTraceListener : System::Diagnostics::TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
type DefaultTraceListener = class
    inherit TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
    inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
Héritage
DefaultTraceListener
Héritage
DefaultTraceListener
Attributs

Exemples

L’exemple de code suivant calcule les coefficients binomiaux, qui sont des valeurs utilisées dans la probabilité et les statistiques. Cet exemple utilise un DefaultTraceListener pour tracer les résultats et consigner les erreurs. Il crée un DefaultTraceListenerobjet , l’ajoute à la Trace.Listeners collection et définit la LogFileName propriété sur le fichier journal spécifié dans les arguments de ligne de commande.

Si une erreur est détectée lors du traitement du paramètre d’entrée ou si la CalcBinomial fonction lève une exception, la Fail méthode journalise et affiche un message d’erreur. Si la AssertUiEnabled propriété est false, le message d’erreur est également écrit dans la console. Lorsque le résultat est calculé avec succès, les Write(String) méthodes et WriteLine(String) écrivent les résultats dans le fichier journal.

Les Failméthodes , Writeet WriteLine les méthodes entraînent l’écriture des informations de trace uniquement dans le DefaultTraceListener. Pour écrire des informations de trace à tous les écouteurs de la Trace.Listeners collection, utilisez les méthodes Writeet WriteLine les Failméthodes de la Trace classe.

using System;
using System.Diagnostics;
using Microsoft.VisualBasic;

class Binomial
{

    // args(0) is the number of possibilities for binomial coefficients.
    // args(1) is the file specification for the trace log file.
    public static void Main(string[] args)
    {

        decimal possibilities;
        decimal iter;

        // Remove the original default trace listener.
        Trace.Listeners.RemoveAt(0);

        // Create and add a new default trace listener.
        DefaultTraceListener defaultListener;
        defaultListener = new DefaultTraceListener();
        Trace.Listeners.Add(defaultListener);

        // Assign the log file specification from the command line, if entered.
        if (args.Length>=2)
        {
            defaultListener.LogFileName = args[1];
        }

        // Validate the number of possibilities argument.
        if (args.Length>=1)

            // Verify that the argument is a number within the correct range.
        {
            try
            {
                const decimal MAX_POSSIBILITIES = 99;
                possibilities = Decimal.Parse(args[0]);
                if (possibilities<0||possibilities>MAX_POSSIBILITIES)
                {
                    throw new Exception(String.Format("The number of possibilities must " +
                        "be in the range 0..{0}.", MAX_POSSIBILITIES));
                }
            }
            catch(Exception ex)
            {
                string failMessage = String.Format("\"{0}\" " +
                    "is not a valid number of possibilities.", args[0]);
                defaultListener.Fail(failMessage, ex.Message);
                if (!defaultListener.AssertUiEnabled)
                {
                    Console.WriteLine(failMessage+ "\n" +ex.Message);
                }
                return;
            }
        }
        else
        {
            // Report that the required argument is not present.
            const string ENTER_PARAM = "Enter the number of " +
                      "possibilities as a command line argument.";
            defaultListener.Fail(ENTER_PARAM);
            if (!defaultListener.AssertUiEnabled)
            {
                Console.WriteLine(ENTER_PARAM);
            }
            return;
        }

        for(iter=0; iter<=possibilities; iter++)
        {
            decimal result;
            string binomial;

            // Compute the next binomial coefficient and handle all exceptions.
            try
            {
                result = CalcBinomial(possibilities, iter);
            }
            catch(Exception ex)
            {
                string failMessage = String.Format("An exception was raised when " +
                    "calculating Binomial( {0}, {1} ).", possibilities, iter);
                defaultListener.Fail(failMessage, ex.Message);
                if (!defaultListener.AssertUiEnabled)
                {
                    Console.WriteLine(failMessage+ "\n" +ex.Message);
                }
                return;
            }

            // Format the trace and console output.
            binomial = String.Format("Binomial( {0}, {1} ) = ", possibilities, iter);
            defaultListener.Write(binomial);
            defaultListener.WriteLine(result.ToString());
            Console.WriteLine("{0} {1}", binomial, result);
        }
    }

    public static decimal CalcBinomial(decimal possibilities, decimal outcomes)
    {

        // Calculate a binomial coefficient, and minimize the chance of overflow.
        decimal result = 1;
        decimal iter;
        for(iter=1; iter<=possibilities-outcomes; iter++)
        {
            result *= outcomes+iter;
            result /= iter;
        }
        return result;
    }
}
Imports System.Diagnostics

Module Binomial

    ' args(0) is the number of possibilities for binomial coefficients.
    ' args(1) is the file specification for the trace log file.
    Sub Main(ByVal args() As String)

        Dim possibilities As Decimal
        Dim iter As Decimal

        ' Remove the original default trace listener.
        Trace.Listeners.RemoveAt(0)

        ' Create and add a new default trace listener.
        Dim defaultListener As DefaultTraceListener
        defaultListener = New DefaultTraceListener
        Trace.Listeners.Add(defaultListener)

        ' Assign the log file specification from the command line, if entered.
        If args.Length >= 2 Then
            defaultListener.LogFileName = args(1)
        End If

        ' Validate the number of possibilities argument.
        If args.Length >= 1 Then

            ' Verify that the argument is a number within the correct range.
            Try
                Const MAX_POSSIBILITIES As Decimal = 99
                possibilities = Decimal.Parse(args(0))
                If possibilities < 0 Or possibilities > MAX_POSSIBILITIES Then
                    Throw New Exception( _
                        String.Format("The number of possibilities must " & _
                            "be in the range 0..{0}.", MAX_POSSIBILITIES))
                End If
            Catch ex As Exception
                Dim failMessage As String = String.Format("""{0}"" " & _
                    "is not a valid number of possibilities.", args(0))
                defaultListener.Fail(failMessage, ex.Message)
                If Not defaultListener.AssertUiEnabled Then
                    Console.WriteLine(failMessage & vbCrLf & ex.Message)
                End If
                Return
            End Try
        Else
            ' Report that the required argument is not present.
            Const ENTER_PARAM As String = "Enter the number of " & _
                "possibilities as a command line argument."
            defaultListener.Fail(ENTER_PARAM)
            If Not defaultListener.AssertUiEnabled Then
                Console.WriteLine(ENTER_PARAM)
            End If
            Return
        End If

        For iter = 0 To possibilities
            Dim result As Decimal
            Dim binomial As String

            ' Compute the next binomial coefficient and handle all exceptions.
            Try
                result = CalcBinomial(possibilities, iter)
            Catch ex As Exception
                Dim failMessage As String = String.Format( _
                        "An exception was raised when " & _
                        "calculating Binomial( {0}, {1} ).", _
                        possibilities, iter)
                defaultListener.Fail(failmessage, ex.Message)
                If Not defaultListener.AssertUiEnabled Then
                    Console.WriteLine(failMessage & vbCrLf & ex.Message)
                End If
                Return
            End Try

            ' Format the trace and console output.
            binomial = String.Format("Binomial( {0}, {1} ) = ", _
                            possibilities, iter)
            defaultListener.Write(binomial)
            defaultListener.WriteLine(result.ToString)
            Console.WriteLine("{0} {1}", binomial, result)
        Next
    End Sub

    Function CalcBinomial(ByVal possibilities As Decimal, _
                        ByVal outcomes As Decimal) As Decimal

        ' Calculate a binomial coefficient, and minimize the chance of overflow.
        Dim result As Decimal = 1
        Dim iter As Decimal
        For iter = 1 To possibilities - outcomes
            result *= outcomes + iter
            result /= iter
        Next
        Return result
    End Function
End Module

Remarques

Une instance de cette classe est automatiquement ajoutée aux collections et Trace.Listeners aux Debug.Listeners collections. L’ajout explicite d’une deuxième DefaultTraceListener cause les messages dupliqués dans la fenêtre de sortie du débogueur et les boîtes de message en double pour les assertions.

Par défaut, les Write méthodes émettent WriteLine le message à la fonction Win32 OutputDebugString et à la Debugger.Log méthode.

La Fail méthode, par défaut, affiche une boîte de message lorsque l’application s’exécute en mode interface utilisateur ; elle émet également le message à l’aide WriteLinede .

Note

L’affichage de la zone de message pour Assert et Fail des appels de méthode dépend de la présence du DefaultTraceListener. Si ce DefaultTraceListener n’est pas dans la Listeners collection, la boîte de message n’est pas affichée. Vous DefaultTraceListener pouvez le supprimer en appelant la Clear méthode sur la Listeners propriété (System.Diagnostics.Trace.Listeners.Clear()). Pour les applications .NET Framework, vous pouvez également utiliser l’élément< clair> et l’élément remove> dans le< fichier de configuration de votre application.

Vous devez activer le suivi ou le débogage pour utiliser un écouteur de suivi. La syntaxe suivante est spécifique au compilateur. Si vous utilisez des compilateurs autres que C# ou Visual Basic, reportez-vous à la documentation de votre compilateur.

  • Pour activer le débogage en C#, ajoutez l’indicateur /d:DEBUG à la ligne de commande du compilateur lorsque vous compilez votre code ou ajoutez-y #define DEBUG en haut de votre fichier. Dans Visual Basic, ajoutez l’indicateur /d:DEBUG=True à la ligne de commande du compilateur.

  • Pour activer le suivi en C#, ajoutez l’indicateur /d:TRACE à la ligne de commande du compilateur lorsque vous compilez votre code ou ajoutez-y #define TRACE en haut de votre fichier. Dans Visual Basic, ajoutez l’indicateur /d:TRACE=True à la ligne de commande du compilateur.

Pour les applications .NET Framework, vous pouvez ajouter un écouteur de suivi en modifiant le fichier de configuration correspondant au nom de votre application. Dans ce fichier, vous pouvez ajouter un écouteur, définir son type et définir ses paramètres, supprimer un écouteur ou effacer tous les écouteurs précédemment définis par l’application. Le fichier de configuration doit être mis en forme comme dans l’exemple suivant :

<configuration>
<system.diagnostics>
  <trace autoflush="false" indentsize="4">
    <listeners>
      <remove name="Default" />
      <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
    </listeners>
  </trace>
</system.diagnostics>
</configuration>

Constructeurs

Nom Description
DefaultTraceListener()

Initialise une nouvelle instance de la DefaultTraceListener classe avec « Default » comme Name valeur de propriété.

Propriétés

Nom Description
AssertUiEnabled

Obtient ou définit une valeur indiquant si l’application s’exécute en mode interface utilisateur.

Attributes

Obtient les attributs d’écouteur de trace personnalisés définis dans le fichier de configuration de l’application.

(Hérité de TraceListener)
Filter

Obtient ou définit le filtre de trace pour l’écouteur de trace.

(Hérité de TraceListener)
IndentLevel

Obtient ou définit le niveau de retrait.

(Hérité de TraceListener)
IndentSize

Obtient ou définit le nombre d’espaces dans un retrait.

(Hérité de TraceListener)
IsThreadSafe

Obtient une valeur indiquant si l’écouteur de trace est thread-safe.

(Hérité de TraceListener)
LogFileName

Obtient ou définit le nom d’un fichier journal dans lequel écrire des messages de trace ou de débogage.

Name

Obtient ou définit un nom pour ce TraceListener.

(Hérité de TraceListener)
NeedIndent

Obtient ou définit une valeur indiquant s’il faut mettre en retrait la sortie.

(Hérité de TraceListener)
TraceOutputOptions

Obtient ou définit les options de sortie de trace.

(Hérité de TraceListener)

Méthodes

Nom Description
Close()

En cas de substitution dans une classe dérivée, ferme le flux de sortie afin qu’il ne reçoive plus de suivi ou de débogage de sortie.

(Hérité de TraceListener)
CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par le TraceListener.

(Hérité de TraceListener)
Dispose(Boolean)

Libère les ressources non managées utilisées par les TraceListener ressources gérées et libère éventuellement les ressources managées.

(Hérité de TraceListener)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Fail(String, String)

Émet ou affiche des messages détaillés et une trace de pile pour une assertion qui échoue toujours.

Fail(String)

Émet ou affiche un message et une trace de pile pour une assertion qui échoue toujours.

Flush()

En cas de substitution dans une classe dérivée, vide la mémoire tampon de sortie.

(Hérité de TraceListener)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetSupportedAttributes()

Obtient les attributs personnalisés pris en charge par l’écouteur de trace.

(Hérité de TraceListener)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet actuel MarshalByRefObject .

(Hérité de MarshalByRefObject)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Écrit des informations de trace, un objet de données et des informations d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Écrit des informations de trace, un tableau d’objets de données et des informations d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Écrit des informations de trace, un tableau mis en forme d’objets et d’informations d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Écrit des informations de trace, un message et des informations d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Écrit les informations de trace et d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Écrit des informations de trace, un message, une identité d’activité associée et des informations d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
Write(Object, String)

Écrit un nom de catégorie et la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(Object)

Écrit la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(String, String)

Écrit un nom de catégorie et un message dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(String)

Écrit la sortie dans la OutputDebugString fonction et dans la Log(Int32, String, String) méthode.

WriteIndent()

Écrit le retrait dans l’écouteur que vous créez lorsque vous implémentez cette classe et réinitialise la NeedIndent propriété sur false.

(Hérité de TraceListener)
WriteLine(Object, String)

Écrit un nom de catégorie et la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivie d’un terminateur de ligne.

(Hérité de TraceListener)
WriteLine(Object)

Écrit la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivie d’une marque de fin de ligne.

(Hérité de TraceListener)
WriteLine(String, String)

Écrit un nom de catégorie et un message dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivi d’un terminateur de ligne.

(Hérité de TraceListener)
WriteLine(String)

Écrit la sortie dans la OutputDebugString fonction et dans la Log(Int32, String, String) méthode, suivie d’un retour chariot et d’un flux de ligne (\r\n).

S’applique à

Cohérence de thread

Cette classe est thread safe.

Voir aussi