DefaultTraceListener Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- Héritage
- 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 |
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 |
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 |
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.