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 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
- 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 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 DEBUGen 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 TRACEen 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 |
| 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 |
| 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 |
S’applique à
Cohérence de thread
Cette classe est thread safe.