Partager via


DefaultTraceListener Classe

Définition

Fournit les méthodes de sortie par défaut et le comportement de 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 suivre les résultats et journaliser les erreurs. Il crée un DefaultTraceListener, 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 propriété a la AssertUiEnabled valeur false, le message d’erreur est également écrit dans la console. Lorsque le résultat est correctement calculé, les Write(String) méthodes et WriteLine(String) écrivent les résultats dans le fichier journal.

Les Failméthodes , Writeet WriteLine entraînent l’écriture des informations de trace uniquement dans le DefaultTraceListener. Pour écrire des informations de trace dans tous les écouteurs de la Trace.Listeners collection, utilisez les Failméthodes , Writeet WriteLine 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 Debug.Listeners collections et Trace.Listeners . L’ajout explicite d’une seconde DefaultTraceListener cause des messages en double dans la fenêtre de sortie du débogueur et des boîtes de message en double pour les assertions.

Par défaut, les Write méthodes et WriteLine émettent 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 d’interface utilisateur ; elle émet également le message à l’aide WriteLinede .

Notes

L’affichage de la boîte de message pour Assert les appels de méthode et Fail dépend de la présence du DefaultTraceListener. Si le DefaultTraceListener n’est pas dans la Listeners collection, la boîte de message ne s’affiche pas. Le DefaultTraceListener peut être supprimé 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< clear> 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 trace. La syntaxe suivante est propre 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 #define DEBUG en haut de votre fichier. En 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 #define TRACE en haut de votre fichier. En 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 trace 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

DefaultTraceListener()

Initialise une nouvelle instance de la classe DefaultTraceListener en assignant "Default" comme valeur de la propriété Name.

Propriétés

AssertUiEnabled

Obtient ou définit une valeur indiquant si l'application est exécutée 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 la 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 qui indique 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 les messages de traçage ou de débogage doivent être écrits.

Name

Obtient ou définit un nom pour ce TraceListener.

(Hérité de TraceListener)
NeedIndent

Obtient ou définit une valeur indiquant si la sortie doit être mise en retrait.

(Hérité de TraceListener)
TraceOutputOptions

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

(Hérité de TraceListener)

Méthodes

Close()

En cas de substitution dans une classe dérivée, ferme le flux de sortie pour qu'il ne reçoive plus la sortie de trace ou de débogage.

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

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

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

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

Libère les ressources non managées utilisées par TraceListener 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)

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

Fail(String, String)

Émet ou affiche des messages détaillés et une trace de la 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()

Fait office 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 en cours 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 le 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 Object actuel.

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

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

(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 les informations sur la trace, un objet de données et les informations sur les événements dans la sortie spécifique de l'écouteur.

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

Écrit les informations sur la trace, un tableau d'objets de données et les informations sur les événements dans la sortie spécifique de l'écouteur.

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

Écrit les informations sur la trace et les événements dans la sortie spécifique de l'écouteur.

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

Écrit les informations sur la trace, un message et les informations sur les événements dans la sortie spécifique de l'écouteur.

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

Écrit les informations sur la trace, un tableau d'objets mis en forme et les informations sur les événements dans la sortie spécifique de l'écouteur.

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

Écrit les informations sur la trace, un message, une identité d'activité connexe et les informations sur les événements dans la sortie spécifique de l'écouteur.

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

Écrit la valeur de la méthode ToString() de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener.

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

Écrit un nom de catégorie ou la valeur de la méthode ToString() de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener.

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

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

Write(String, String)

Écrit un nom de catégorie et un message dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener.

(Hérité de TraceListener)
WriteIndent()

Écrit la mise en retrait dans l'écouteur que vous créez lors de l'implémentation de cette classe et rétablit la valeur false à la propriété NeedIndent.

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

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

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

Écrit un nom de catégorie ou la valeur de la méthode ToString() de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener, suivis d'une marque de fin de ligne.

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

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

WriteLine(String, String)

Écrit un nom de catégorie ou un message dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener, suivis d'une marque de fin de ligne.

(Hérité de TraceListener)

S’applique à

Cohérence de thread

Cette classe est thread-safe.

Voir aussi