DefaultTraceListener Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia domyślne metody generowania danych wyjściowych oraz zachowanie śledzenia.
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
- Dziedziczenie
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład kodu oblicza współczynniki binomowe, które są wartościami używanymi w prawdopodobieństwach i statystykach. W tym przykładzie użyto elementu , DefaultTraceListener aby śledzić wyniki i rejestrować błędy. Tworzy nowy DefaultTraceListenerelement , dodaje go do Trace.Listeners kolekcji i ustawia LogFileName właściwość na plik dziennika określony w argumentach wiersza polecenia.
Jeśli podczas przetwarzania parametru wejściowego zostanie wykryty błąd lub jeśli CalcBinomial
funkcja zgłosi wyjątek, Fail metoda rejestruje i wyświetla komunikat o błędzie. AssertUiEnabled Jeśli właściwość ma false
wartość , komunikat o błędzie jest również zapisywany w konsoli. Po pomyślnym Write(String) obliczeniu wyniku metody i WriteLine(String) zapisują wyniki w pliku dziennika.
Metody Fail, Writei WriteLine powodują zapisanie informacji śledzenia tylko w obiekcie DefaultTraceListener. Aby zapisać informacje śledzenia do wszystkich odbiorników w Trace.Listeners kolekcji, użyj Failmetod Trace , Writei WriteLine klasy .
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
Uwagi
Wystąpienie tej klasy jest automatycznie dodawane do Debug.Listeners kolekcji i Trace.Listeners . Jawne dodanie sekundy DefaultTraceListener powoduje zduplikowane komunikaty w oknie danych wyjściowych debugera i zduplikowane pola komunikatów dla asercj.
Domyślnie Write metody i WriteLine emitują komunikat do funkcji Win32 OutputDebugString i metody Debugger.Log .
Metoda Fail domyślnie wyświetla okno komunikatu, gdy aplikacja jest uruchomiona w trybie interfejsu użytkownika; emituje również komunikat przy użyciu polecenia WriteLine.
Uwaga
Wyświetlanie okna komunikatu dla Assert wywołań metod i Fail zależy od obecności elementu DefaultTraceListener. Jeśli element DefaultTraceListener nie znajduje się w Listeners kolekcji, okno komunikatu nie jest wyświetlane. Element DefaultTraceListener można usunąć, wywołując metodę Clear we Listeners właściwości (System.Diagnostics.Trace.Listeners.Clear()
). W przypadku .NET Framework aplikacji można również użyć <clear> elementu i <elementu remove> w pliku konfiguracji aplikacji.
Aby używać odbiornika śledzenia, należy włączyć śledzenie lub debugowanie. Następująca składnia jest specyficzna dla kompilatora. Jeśli używasz kompilatorów innych niż C# lub Visual Basic, zapoznaj się z dokumentacją kompilatora.
Aby włączyć debugowanie w języku C#, dodaj flagę
/d:DEBUG
do wiersza polecenia kompilatora podczas kompilowania kodu lub dodaj#define DEBUG
ją na początku pliku. W języku Visual Basic dodaj flagę/d:DEBUG=True
do wiersza polecenia kompilatora.Aby włączyć śledzenie w języku C#, dodaj flagę
/d:TRACE
do wiersza polecenia kompilatora podczas kompilowania kodu lub dodaj#define TRACE
ją na początku pliku. W języku Visual Basic dodaj flagę/d:TRACE=True
do wiersza polecenia kompilatora.
W przypadku aplikacji .NET Framework można dodać odbiornik śledzenia, edytując plik konfiguracji odpowiadający nazwie aplikacji. W tym pliku można dodać odbiornik, ustawić jego typ i ustawić jego parametry, usunąć odbiornik lub wyczyścić wszystkie odbiorniki ustawione wcześniej przez aplikację. Plik konfiguracji powinien być sformatowany podobnie do następującego przykładu:
<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>
Konstruktory
DefaultTraceListener() |
Inicjuje DefaultTraceListener nowe wystąpienie klasy z wartością właściwości "Default".Name |
Właściwości
AssertUiEnabled |
Pobiera lub ustawia wartość wskazującą, czy aplikacja działa w trybie interfejsu użytkownika. |
Attributes |
Pobiera atrybuty niestandardowego odbiornika śledzenia zdefiniowane w pliku konfiguracji aplikacji. (Odziedziczone po TraceListener) |
Filter |
Pobiera lub ustawia filtr śledzenia dla odbiornika śledzenia. (Odziedziczone po TraceListener) |
IndentLevel |
Pobiera lub ustawia poziom wcięcia. (Odziedziczone po TraceListener) |
IndentSize |
Pobiera lub ustawia liczbę spacji w wcięcie. (Odziedziczone po TraceListener) |
IsThreadSafe |
Pobiera wartość wskazującą, czy odbiornik śledzenia jest bezpieczny wątkiem. (Odziedziczone po TraceListener) |
LogFileName |
Pobiera lub ustawia nazwę pliku dziennika w celu zapisania śledzenia lub debugowania komunikatów. |
Name |
Pobiera lub ustawia nazwę dla tego TraceListenerelementu . (Odziedziczone po TraceListener) |
NeedIndent |
Pobiera lub ustawia wartość wskazującą, czy wcięć dane wyjściowe. (Odziedziczone po TraceListener) |
TraceOutputOptions |
Pobiera lub ustawia opcje danych wyjściowych śledzenia. (Odziedziczone po TraceListener) |
Metody
Close() |
Po zastąpieniu w klasie pochodnej zamyka strumień wyjściowy, aby nie odbierał już danych wyjściowych śledzenia ani debugowania. (Odziedziczone po TraceListener) |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
Dispose() |
Zwalnia wszelkie zasoby używane przez element TraceListener. (Odziedziczone po TraceListener) |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element TraceListener i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po TraceListener) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Fail(String) |
Emituje lub wyświetla komunikat i ślad stosu dla potwierdzenia, które zawsze kończy się niepowodzeniem. |
Fail(String, String) |
Emituje lub wyświetla szczegółowe komunikaty oraz ślad stosu dla potwierdzenia, które zawsze kończy się niepowodzeniem. |
Flush() |
Po zastąpieniu w klasie pochodnej opróżnia bufor wyjściowy. (Odziedziczone po TraceListener) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetSupportedAttributes() |
Pobiera atrybuty niestandardowe obsługiwane przez odbiornik śledzenia. (Odziedziczone po TraceListener) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu. (Odziedziczone po MarshalByRefObject) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Zapisuje informacje śledzenia, obiekt danych i informacje o zdarzeniu do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Zapisuje informacje śledzenia, tablicę obiektów danych i informacje o zdarzeniach do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Zapisuje informacje o śledzeniu i zdarzeniu do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Zapisuje informacje śledzenia, komunikat i informacje o zdarzeniu do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Zapisuje informacje śledzenia, sformatowaną tablicę obiektów i informacji o zdarzeniach do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Zapisuje informacje śledzenia, komunikat, powiązaną tożsamość działania i informacje o zdarzeniu do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
Write(Object) |
Zapisuje wartość metody obiektu ToString() w odbiorniku tworzonym podczas implementowania TraceListener klasy . (Odziedziczone po TraceListener) |
Write(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
Write(String) |
Zapisuje dane wyjściowe w |
Write(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika utworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
WriteIndent() |
Zapisuje wcięcie do odbiornika utworzonego podczas implementowania tej klasy i resetuje NeedIndent właściwość do |
WriteLine(Object) |
Zapisuje wartość metody obiektu ToString() w odbiorniku tworzonym podczas implementowania TraceListener klasy, a po niej następuje terminator wiersza. (Odziedziczone po TraceListener) |
WriteLine(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy, a następnie terminator wiersza. (Odziedziczone po TraceListener) |
WriteLine(String) |
Zapisuje dane wyjściowe do |
WriteLine(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika tworzonego TraceListener podczas implementowania klasy, po którym następuje terminator wiersza. (Odziedziczone po TraceListener) |
Dotyczy
Bezpieczeństwo wątkowe
Ta klasa jest bezpieczna wątkiem.