DefaultTraceListener Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce i metodi di output predefiniti e il comportamento per la traccia.
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
- Ereditarietà
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente vengono calcolati i coefficienti binomiali, che sono valori usati in probabilità e statistiche. In questo esempio viene usato un DefaultTraceListener oggetto per tracciare i risultati e registrare gli errori. Crea un nuovo DefaultTraceListeneroggetto , lo aggiunge all'insieme Trace.Listeners e imposta la LogFileName proprietà sul file di log specificato negli argomenti della riga di comando.
Se viene rilevato un errore durante l'elaborazione del parametro di input o se la CalcBinomial
funzione genera un'eccezione, il Fail metodo registra e visualizza un messaggio di errore. Se la AssertUiEnabled proprietà è false
, il messaggio di errore viene scritto anche nella console. Quando il risultato viene calcolato correttamente, i Write(String) metodi e WriteLine(String) scrivono i risultati nel file di log.
I Failmetodi , Writee WriteLine causano la scrittura delle informazioni di traccia solo nell'oggetto DefaultTraceListener. Per scrivere informazioni di traccia in tutti i listener della Trace.Listeners raccolta, usare i Failmetodi , Writee WriteLine della 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
Commenti
Un'istanza Debug.Listeners di questa classe viene aggiunta automaticamente alle raccolte e Trace.Listeners . L'aggiunta esplicita di un secondo DefaultTraceListener causa messaggi duplicati nella finestra di output del debugger e nelle caselle di messaggio duplicate per le asserzioni.
Per impostazione predefinita, i Write metodi e WriteLine generano il messaggio alla funzione OutputDebugString Win32 e al Debugger.Log metodo .
Il Fail metodo, per impostazione predefinita, visualizza una finestra di messaggio quando l'applicazione è in esecuzione in modalità interfaccia utente. Genera anche il messaggio usando WriteLine.
Nota
La visualizzazione della finestra di messaggio per Assert e Fail le chiamate al metodo dipende dalla presenza di DefaultTraceListener. Se l'oggetto DefaultTraceListenerListeners non è presente nella raccolta, la finestra di messaggio non viene visualizzata. L'oggetto DefaultTraceListener può essere rimosso chiamando il Clear metodo nella Listeners proprietà (System.Diagnostics.Trace.Listeners.Clear()
). Per le app .NET Framework, è anche possibile usare l'elemento< chiaro> e l'elemento< remove> nel file di configurazione dell'app.
È necessario abilitare la traccia o il debug per usare un listener di traccia. La sintassi seguente è specifica del compilatore. Se si usano compilatori diversi da C# o Visual Basic, vedere la documentazione del compilatore.
Per abilitare il debug in C#, aggiungere il flag alla riga di comando del compilatore quando si compila il
/d:DEBUG
codice o aggiungere#define DEBUG
alla parte superiore del file. In Visual Basic aggiungere il/d:DEBUG=True
flag alla riga di comando del compilatore.Per abilitare la traccia in C#, aggiungere il flag alla riga di comando del compilatore quando si compila il
/d:TRACE
codice o aggiungere#define TRACE
alla parte superiore del file. In Visual Basic aggiungere il/d:TRACE=True
flag alla riga di comando del compilatore.
Per le app .NET Framework, è possibile aggiungere un listener di traccia modificando il file di configurazione corrispondente al nome dell'applicazione. All'interno di questo file è possibile aggiungere un listener, impostarne il tipo e impostarne i parametri, rimuovere un listener o cancellare tutti i listener impostati in precedenza dall'applicazione. Il file di configurazione deve essere formattato in modo simile all'esempio seguente:
<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. |
Proprietà
AssertUiEnabled |
Ottiene o imposta un valore che indica se l'applicazione è in esecuzione nella modalità interfaccia utente. |
Attributes |
Ottiene gli attributi personalizzati del listener di traccia definiti nel file di configurazione dell'applicazione. (Ereditato da TraceListener) |
Filter |
Ottiene o imposta il filtro di traccia per il listener di traccia. (Ereditato da TraceListener) |
IndentLevel |
Ottiene o imposta il livello di rientro. (Ereditato da TraceListener) |
IndentSize |
Ottiene o imposta il numero di spazi in un rientro. (Ereditato da TraceListener) |
IsThreadSafe |
Ottiene un valore che indica se il listener di traccia è 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. |
Name |
Ottiene o imposta un nome per l'oggetto TraceListener. (Ereditato da TraceListener) |
NeedIndent |
Ottiene o imposta un valore che indica se impostare il rientro dell'output. (Ereditato da TraceListener) |
TraceOutputOptions |
Ottiene o imposta le opzioni dell'output di traccia. (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. (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. (Ereditato da MarshalByRefObject) |
Dispose() |
Rilascia tutte le risorse usate da TraceListener. (Ereditato da TraceListener) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da TraceListener e, facoltativamente, le risorse gestite. (Ereditato da TraceListener) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Fail(String) |
Genera o visualizza un messaggio e una traccia dello stack per un'asserzione che ha sempre esito negativo. |
Fail(String, String) |
Genera o visualizza un messaggio dettagliato e una traccia dello stack per un'asserzione che ha sempre esito negativo. |
Flush() |
Quando se ne esegue l'override in una classe derivata, scarica il buffer di output. (Ereditato da TraceListener) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetSupportedAttributes() |
Ottiene gli attributi personalizzati supportati dal listener di traccia. (Ereditato da TraceListener) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (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. (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. (Ereditato da TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Scrive le informazioni di traccia e di evento nell'output specifico del listener. (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. (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. (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. (Ereditato da TraceListener) |
Write(Object) |
Scrive il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener. (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. (Ereditato da TraceListener) |
Write(String) |
Scrive l'output nella funzione |
Write(String, String) |
Scrive un nome di categoria e un messaggio nel listener creato durante l'implementazione della classe TraceListener. (Ereditato da TraceListener) |
WriteIndent() |
Inserisce il rientro nel listener creato quando si implementa questa classe e reimposta la proprietà NeedIndent su |
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. (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. (Ereditato da TraceListener) |
WriteLine(String) |
Scrive l'output nella funzione |
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. (Ereditato da TraceListener) |
Si applica a
Thread safety
Questa classe è thread safe.