DefaultTraceListener Klasa

Definicja

Udostępnia domyślne metody generowania danych wyjściowych oraz zachowanie śledzenia.

C#
public class DefaultTraceListener : System.Diagnostics.TraceListener
C#
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
Dziedziczenie
DefaultTraceListener
Dziedziczenie
DefaultTraceListener
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 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 .

C#
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;
    }
}

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:

XML
<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 TraceListener podczas implementowania klasy, po którym następuje terminator wiersza.

(Odziedziczone po TraceListener)

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Bezpieczeństwo wątkowe

Ta klasa jest bezpieczna wątkiem.

Zobacz też