DefaultTraceListener Classe

Definizione

Fornisce i metodi di output predefiniti e il comportamento per la traccia.Provides the default output methods and behavior for tracing.

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
Public Class DefaultTraceListener
Inherits TraceListener
Ereditarietà
DefaultTraceListener
Ereditarietà
DefaultTraceListener
Attributi

Esempio

Nell'esempio di codice seguente vengono calcolati i coefficienti binomiali, ovvero i valori utilizzati nella probabilità e nelle statistiche.The following code example calculates binomial coefficients, which are values used in probability and statistics. In questo esempio viene usato un DefaultTraceListener per tracciare i risultati e registrare gli errori.This example uses a DefaultTraceListener to trace results and log errors. Crea una nuova DefaultTraceListener, la aggiunge alla raccolta Trace.Listeners e imposta la proprietà LogFileName sul file di log specificato negli argomenti della riga di comando.It creates a new DefaultTraceListener, adds it to the Trace.Listeners collection, and sets the LogFileName property to the log file specified in the command-line arguments.

Se viene rilevato un errore durante l'elaborazione del parametro di input oppure se la funzione CalcBinomial genera un'eccezione, il metodo Fail registra e visualizza un messaggio di errore.If an error is detected while processing the input parameter, or if the CalcBinomial function throws an exception, the Fail method logs and displays an error message. Se la proprietà AssertUiEnabled è false, anche il messaggio di errore viene scritto nella console.If the AssertUiEnabled property is false, the error message is also written to the console. Quando il risultato viene calcolato correttamente, i metodi Write(String) e WriteLine(String) scrivono i risultati nel file di log.When the result is calculated successfully, the Write(String) and WriteLine(String) methods write the results to the log file.

I metodi Fail, Writee WriteLine comportano la scrittura di informazioni di traccia solo nel DefaultTraceListener.The Fail, Write, and WriteLine methods cause trace information to be written only to the DefaultTraceListener. Per scrivere le informazioni di traccia in tutti i listener nella raccolta di Trace.Listeners, usare i metodi Fail, Writee WriteLine della classe Trace.To write trace information to all listeners in the Trace.Listeners collection, use the Fail, Write, and WriteLine methods of the Trace class.

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

Commenti

Un'istanza di questa classe viene aggiunta automaticamente alle raccolte Debug.Listeners e Trace.Listeners.An instance of this class is automatically added to the Debug.Listeners and Trace.Listeners collections. Aggiungendo in modo esplicito un secondo DefaultTraceListener si generano messaggi duplicati nella finestra di output del debugger e finestre di messaggio duplicate per le asserzioni.Explicitly adding a second DefaultTraceListener causes duplicate messages in the debugger output window and duplicate message boxes for asserts.

Per impostazione predefinita, i metodi Write e WriteLine generano il messaggio per la funzione OutputDebugString Win32 e per il metodo Debugger.Log.By default, the Write and WriteLine methods emit the message to the Win32 OutputDebugString function and to the Debugger.Log method.

Per impostazione predefinita, il metodo Fail Visualizza una finestra di messaggio quando l'applicazione è in esecuzione in modalità interfaccia utente. genera inoltre il messaggio utilizzando WriteLine.The Fail method, by default, displays a message box when the application is running in a user interface mode; it also emits the message using WriteLine.

Nota

La visualizzazione della finestra di messaggio per le chiamate al metodo Assert e Fail dipende dalla presenza della DefaultTraceListener.The display of the message box for Assert and Fail method calls depends on the presence of the DefaultTraceListener. Se il DefaultTraceListener non è presente nella raccolta Listeners, la finestra di messaggio non viene visualizzata.If the DefaultTraceListener is not in the Listeners collection, the message box is not displayed. Il DefaultTraceListener può essere rimosso dall' <elemento clear >, dall' <rimuovere > elementooppure chiamando il metodo Clear sulla proprietà Listeners (System.Diagnostics.Trace.Listeners.Clear()).The DefaultTraceListener can be removed by the <clear> element, by the <remove> element, or by calling the Clear method on the Listeners property (System.Diagnostics.Trace.Listeners.Clear()).

È necessario abilitare la traccia o il debug per utilizzare un listener di traccia.You must enable tracing or debugging to use a trace listener. La sintassi seguente è specifica del compilatore.The following syntax is compiler specific. Se si usano compilatori diversi C# da o Visual Basic, fare riferimento alla documentazione del compilatore.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Per abilitare il debug C#in, aggiungere il flag di /d:DEBUG alla riga di comando del compilatore quando si compila il codice o aggiungere #define DEBUG all'inizio del file.To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. In Visual Basic aggiungere il flag di /d:DEBUG=True alla riga di comando del compilatore.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Per abilitare l'analisi C#in, aggiungere il flag di /d:TRACE alla riga di comando del compilatore quando si compila il codice o aggiungere #define TRACE all'inizio del file.To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. In Visual Basic aggiungere il flag di /d:TRACE=True alla riga di comando del compilatore.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Per aggiungere un listener di traccia, modificare il file di configurazione che corrisponde al nome dell'applicazione.To add a trace listener, edit the configuration file that corresponds to the name of your application. All'interno di questo file è possibile aggiungere un listener, impostarne il tipo e impostarne i parametri, rimuovere un listener o deselezionare tutti i listener precedentemente impostati dall'applicazione.Within this file, you can add a listener, set its type and set its parameters, remove a listener, or clear all the listeners previously set by the application. Il file di configurazione deve essere formattato in modo simile all'esempio seguente:The configuration file should be formatted similar to the following example:

<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>  

Costruttori

DefaultTraceListener()

Inizializza una nuova istanza della classe DefaultTraceListener con "Default" come valore della proprietà Name.Initializes a new instance of the DefaultTraceListener class with "Default" as its Name property value.

Proprietà

AssertUiEnabled

Ottiene o imposta un valore che indica se l'applicazione è in esecuzione nella modalità interfaccia utente.Gets or sets a value indicating whether the application is running in user-interface mode.

Attributes

Ottiene gli attributi personalizzati del listener di traccia definiti nel file di configurazione dell'applicazione.Gets the custom trace listener attributes defined in the application configuration file.

(Ereditato da TraceListener)
Filter

Ottiene o imposta il filtro di traccia per il listener di traccia.Gets or sets the trace filter for the trace listener.

(Ereditato da TraceListener)
IndentLevel

Ottiene o imposta il livello di rientro.Gets or sets the indent level.

(Ereditato da TraceListener)
IndentSize

Ottiene o imposta il numero di spazi in un rientro.Gets or sets the number of spaces in an indent.

(Ereditato da TraceListener)
IsThreadSafe

Ottiene un valore che indica se il listener di traccia è thread-safe.Gets a value indicating whether the trace listener is thread safe.

(Ereditato da TraceListener)
LogFileName

Ottiene o imposta il nome di un file di log in cui scrivere i messaggi di traccia o debug.Gets or sets the name of a log file to write trace or debug messages to.

Name

Ottiene o imposta un nome per questa classe TraceListener.Gets or sets a name for this TraceListener.

(Ereditato da TraceListener)
NeedIndent

Ottiene o imposta un valore che indica se impostare il rientro dell'output.Gets or sets a value indicating whether to indent the output.

(Ereditato da TraceListener)
TraceOutputOptions

Ottiene o imposta le opzioni dell'output di traccia.Gets or sets the trace output options.

(Ereditato da TraceListener)

Metodi

Close()

Quando se ne esegue l'override in una classe derivata, chiude il flusso di output in modo da bloccare la ricezione di output di tracciatura o di debug.When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output.

(Ereditato da TraceListener)
CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da TraceListener.Releases all resources used by the TraceListener.

(Ereditato da TraceListener)
Dispose(Boolean)

Rilascia le risorse non gestite usate da TraceListener e facoltativamente rilascia le risorse gestite.Releases the unmanaged resources used by the TraceListener and optionally releases the managed resources.

(Ereditato da TraceListener)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Fail(String)

Genera o visualizza un messaggio e una traccia dello stack per un'asserzione che ha sempre esito negativo.Emits or displays a message and a stack trace for an assertion that always fails.

Fail(String, String)

Genera o visualizza un messaggio dettagliato e una traccia dello stack per un'asserzione che ha sempre esito negativo.Emits or displays detailed messages and a stack trace for an assertion that always fails.

Flush()

Quando se ne esegue l'override in una classe derivata, scarica il buffer di output.When overridden in a derived class, flushes the output buffer.

(Ereditato da TraceListener)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
GetSupportedAttributes()

Ottiene gli attributi personalizzati supportati dal listener di traccia.Gets the custom attributes supported by the trace listener.

(Ereditato da TraceListener)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

(Ereditato da MarshalByRefObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Scrive le informazioni di traccia, un oggetto dati e le informazioni di evento nell'output specifico del listener.Writes trace information, a data object and event information to the listener specific output.

(Ereditato da TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Scrive le informazioni di traccia, una matrice di oggetti dati e le informazioni di evento nell'output specifico del listener.Writes trace information, an array of data objects and event information to the listener specific output.

(Ereditato da TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Scrive le informazioni di traccia e di evento nell'output specifico del listener.Writes trace and event information to the listener specific output.

(Ereditato da TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Scrive le informazioni di traccia, un messaggio e le informazioni di evento nell'output specifico del listener.Writes trace information, a message, and event information to the listener specific output.

(Ereditato da TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Scrive le informazioni di traccia, una matrice di oggetti formattata e le informazioni di evento nell'output specifico del listener.Writes trace information, a formatted array of objects and event information to the listener specific output.

(Ereditato da TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Scrive le informazioni di traccia, un messaggio, l'identità di un'attività correlata e le informazioni di evento nell'output specifico del listener.Writes trace information, a message, a related activity identity and event information to the listener specific output.

(Ereditato da TraceListener)
Write(Object)

Scrive il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener.Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Ereditato da TraceListener)
Write(Object, String)

Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener.Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Ereditato da TraceListener)
Write(String)

Scrive l'output nella funzione OutputDebugString e nel metodo Log(Int32, String, String).Writes the output to the OutputDebugString function and to the Log(Int32, String, String) method.

Write(String, String)

Scrive un nome di categoria e un messaggio nel listener creato durante l'implementazione della classe TraceListener.Writes a category name and a message to the listener you create when you implement the TraceListener class.

(Ereditato da TraceListener)
WriteIndent()

Inserisce il rientro nel listener creato quando si implementa questa classe e reimposta la proprietà NeedIndent su false.Writes the indent to the listener you create when you implement this class, and resets the NeedIndent property to false.

(Ereditato da TraceListener)
WriteLine(Object)

Scrive il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener, seguito da un terminatore di riga.Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Ereditato da TraceListener)
WriteLine(Object, String)

Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener, seguito da un terminatore di riga.Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Ereditato da TraceListener)
WriteLine(String)

Scrive l'output nella funzione OutputDebugString e nel metodo Log(Int32, String, String) seguito da un ritorno a capo e da un avanzamento riga (\r\n).Writes the output to the OutputDebugString function and to the Log(Int32, String, String) method, followed by a carriage return and line feed (\r\n).

WriteLine(String, String)

Scrive un nome di categoria e un messaggio nel listener creato durante l'implementazione della classe TraceListener, seguiti da un terminatore di riga.Writes a category name and a message to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Ereditato da TraceListener)

Si applica a

Thread safety

Questa classe è thread-safe.This class is thread safe.

Vedi anche