DefaultTraceListener Klasa

Definicja

Udostępnia domyślne metody i zachowanie danych wyjściowych do ś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
DefaultTraceListener
Dziedziczenie
DefaultTraceListener
Atrybuty

Przykłady

Poniższy przykład kodu oblicza współczynniki binomalne, 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 falsewartość , 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 OutputDebugString funkcji i w metodzie Log(Int32, String, String) .

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

(Odziedziczone po TraceListener)
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 OutputDebugString funkcji i Log(Int32, String, String) do metody, a następnie powrotu karetki i kanału informacyjnego wiersza (\r\n).

WriteLine(String, String)

Zapisuje nazwę kategorii i komunikat do odbiornika tworzonego podczas implementowania TraceListener klasy, po którym następuje terminator wiersza.

(Odziedziczone po TraceListener)

Dotyczy

Bezpieczeństwo wątkowe

Ta klasa jest bezpieczna wątkiem.

Zobacz też