Sdílet prostřednictvím


DefaultTraceListener Třída

Definice

Poskytuje výchozí metody výstupu a chování trasování.

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
Dědičnost
DefaultTraceListener
Dědičnost
DefaultTraceListener
Atributy

Příklady

Následující příklad kódu vypočítá binomické koeficienty, které jsou hodnoty používané v pravděpodobnosti a statistikách. Tento příklad používá DefaultTraceListener k trasování výsledků a chyb protokolu. Vytvoří novou DefaultTraceListener, přidá ji do Trace.Listeners kolekce a nastaví LogFileName vlastnost na soubor protokolu zadaný v argumentech příkazového řádku.

Pokud se při zpracování vstupního parametru zjistí chyba nebo pokud CalcBinomial funkce vyvolá výjimku, Fail protokoly metody a zobrazí chybovou zprávu. AssertUiEnabled Pokud je falsevlastnost , chybová zpráva je také zapsána do konzoly. Při úspěšném Write(String) výpočtu výsledku zapisuje výsledky do souboru protokolu.WriteLine(String)

Fail, Writea WriteLine metody způsobí, že trasovací informace budou zapsány pouze do DefaultTraceListener. Chcete-li psát trasovací informace všem naslouchacím procesům Trace.Listeners v kolekci, použijte Fail, Writea WriteLine metody Trace třídy.

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

Poznámky

Instance této třídy se automaticky přidá do Debug.Listeners kolekcí a Trace.Listeners kolekcí. Explicitní přidání druhé DefaultTraceListener způsobí duplicitní zprávy v okně výstupu ladicího programu a duplicitní pole zpráv pro asserts.

Ve výchozím nastavení vygenerují Write a WriteLine metody zprávu do funkce Win32 OutputDebugString a do Debugger.Log metody.

Metoda Fail ve výchozím nastavení zobrazí okno se zprávou, když aplikace běží v režimu uživatelského rozhraní; také generuje zprávu pomocí WriteLine.

Poznámka:

Zobrazení pole zprávy pro Assert volání metody a Fail závisí na přítomnosti DefaultTraceListener. Pokud v kolekci DefaultTraceListener není Listeners , pole se zprávou se nezobrazí. Lze DefaultTraceListener odebrat voláním Clear metody ve Listeners vlastnosti (System.Diagnostics.Trace.Listeners.Clear()). Pro aplikace .NET Framework můžete také použít <jasný> prvek a <element remove> v konfiguračním souboru vaší aplikace.

Pokud chcete použít naslouchací proces trasování, musíte povolit trasování nebo ladění. Následující syntaxe je specifická pro kompilátor. Pokud používáte jiné kompilátory než C# nebo Visual Basic, projděte si dokumentaci pro váš kompilátor.

  • Pokud chcete povolit ladění v jazyce C#, přidejte /d:DEBUG příznak do příkazového řádku kompilátoru při kompilaci kódu nebo přidejte #define DEBUG do horní části souboru. V jazyce Visual Basic přidejte /d:DEBUG=True příznak do příkazového řádku kompilátoru.

  • Pokud chcete povolit trasování v jazyce C#, přidejte /d:TRACE příznak do příkazového řádku kompilátoru při kompilaci kódu nebo přidejte #define TRACE na začátek souboru. V jazyce Visual Basic přidejte /d:TRACE=True příznak do příkazového řádku kompilátoru.

Pro aplikace rozhraní .NET Framework můžete přidat naslouchací proces trasování úpravou konfiguračního souboru, který odpovídá názvu vaší aplikace. V tomto souboru můžete přidat naslouchací proces, nastavit jeho typ a nastavit jeho parametry, odebrat naslouchací proces nebo vymazat všechny naslouchací procesy dříve nastavené aplikací. Konfigurační soubor by měl být naformátovaný podobně jako v následujícím příkladu:

<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

Name Description
DefaultTraceListener()

Inicializuje novou instanci DefaultTraceListener třídy s "Default" jako Name jeho hodnota vlastnosti.

Vlastnosti

Name Description
AssertUiEnabled

Získá nebo nastaví hodnotu určující, zda aplikace běží v režimu uživatelského rozhraní.

Attributes

Získá vlastní atributy naslouchacího procesu trasování definované v konfiguračním souboru aplikace.

(Zděděno od TraceListener)
Filter

Získá nebo nastaví filtr trasování pro naslouchací proces trasování.

(Zděděno od TraceListener)
IndentLevel

Získá nebo nastaví úroveň odsazení.

(Zděděno od TraceListener)
IndentSize

Získá nebo nastaví počet mezer v odsazení.

(Zděděno od TraceListener)
IsThreadSafe

Získá hodnotu označující, zda je naslouchací proces trasování bezpečný podproces.

(Zděděno od TraceListener)
LogFileName

Získá nebo nastaví název souboru protokolu pro zápis trasování nebo ladění zpráv do.

Name

Získá nebo nastaví název pro tento TraceListener.

(Zděděno od TraceListener)
NeedIndent

Získá nebo nastaví hodnotu označující, zda se má výstup odsadit.

(Zděděno od TraceListener)
TraceOutputOptions

Získá nebo nastaví možnosti výstupu trasování.

(Zděděno od TraceListener)

Metody

Name Description
Close()

Při přepsání v odvozené třídě zavře výstupní datový proud, takže již nepřijímá trasování nebo ladění výstup.

(Zděděno od TraceListener)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Dispose()

Uvolní všechny prostředky používané nástrojem TraceListener.

(Zděděno od TraceListener)
Dispose(Boolean)

Uvolní nespravované prostředky používané TraceListener a volitelně uvolní spravované prostředky.

(Zděděno od TraceListener)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Fail(String, String)

Generuje nebo zobrazuje podrobné zprávy a trasování zásobníku pro kontrolní výraz, který vždy selže.

Fail(String)

Vygeneruje nebo zobrazí zprávu a trasování zásobníku pro kontrolní výraz, který vždy selže.

Flush()

Při přepsání v odvozené třídě vyprázdní výstupní vyrovnávací paměť.

(Zděděno od TraceListener)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetSupportedAttributes()

Získá vlastní atributy podporované naslouchacím procesem trasování.

(Zděděno od TraceListener)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

(Zděděno od MarshalByRefObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Zapisuje informace o trasování, datový objekt a informace o událostech do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Zapisuje informace o trasování, pole datových objektů a informace o událostech do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Zapisuje informace o trasování, formátované pole objektů a informace o událostech do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Zapíše informace o trasování, zprávu a informace o události do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Zapíše informace o trasování a událostech do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Zapisuje informace o trasování, zprávu, související identitu aktivity a informace o událostech do výstupu specifického pro naslouchací proces.

(Zděděno od TraceListener)
Write(Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy.

(Zděděno od TraceListener)
Write(Object)

Zapíše hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy.

(Zděděno od TraceListener)
Write(String, String)

Zapíše název kategorie a zprávu do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy.

(Zděděno od TraceListener)
Write(String)

Zapíše výstup do OutputDebugString funkce a do Log(Int32, String, String) metody.

WriteIndent()

Zapíše odsazení do naslouchacího procesu, který vytvoříte při implementaci této třídy, a resetuje NeedIndent vlastnost na false.

(Zděděno od TraceListener)
WriteLine(Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následovaný ukončovacím znakem řádku.

(Zděděno od TraceListener)
WriteLine(Object)

Zapíše hodnotu metody objektu ToString() do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následované ukončovacím řádkem.

(Zděděno od TraceListener)
WriteLine(String, String)

Zapíše název kategorie a zprávu do naslouchacího procesu, který vytvoříte při implementaci TraceListener třídy, následovaný ukončovacím řádkem.

(Zděděno od TraceListener)
WriteLine(String)

Zapíše výstup do OutputDebugString funkce a do Log(Int32, String, String) metody, za kterou následuje návrat na začátek řádku a odřádkování (\r\n).

Platí pro

Bezpečný přístup z více vláken

Tato třída je bezpečná pro přístup z více vláken.

Viz také