Sdílet prostřednictvím


DefaultTraceListener Třída

Definice

Poskytuje výchozí metody a chování výstupu pro 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, což jsou hodnoty používané v pravděpodobnosti a statistikách. V tomto příkladu DefaultTraceListener se používá k trasování výsledků a protokolování chyb. Vytvoří nový DefaultTraceListenerobjekt , přidá ho Trace.Listeners do kolekce a nastaví LogFileName vlastnost na soubor protokolu zadaný v argumentech příkazového řádku.

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

Metody Fail, Writea WriteLine způsobují, že trasovací informace jsou zapsány pouze do objektu DefaultTraceListener. Chcete-li zapsat informace o trasování do všech naslouchacích procesů v Trace.Listeners kolekci, použijte Failmetody , Writea WriteLine třídy .Trace

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 kolekcí Debug.Listeners a Trace.Listeners . Explicitní přidání sekundy DefaultTraceListener způsobí duplicitní zprávy ve výstupním okně ladicího programu a duplicitní pole zpráv pro výrazy.

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

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

Poznámka

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

Pokud chcete používat 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 k kompilátoru.

  • 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 na začátek 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 do horní části souboru. V jazyce Visual Basic přidejte /d:TRACE=True příznak do příkazového řádku kompilátoru.

U aplikací .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 formá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

DefaultTraceListener()

Inicializuje novou instanci DefaultTraceListener třídy s hodnotou vlastnosti Default Name .

Vlastnosti

AssertUiEnabled

Získá nebo nastaví hodnotu označující, zda je aplikace spuštěna v režimu uživatelského rozhraní.

Attributes

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

(Zděděno od TraceListener)
Filter

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

(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 trasovací naslouchací proces je bezpečný z více vláken.

(Zděděno od TraceListener)
LogFileName

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

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 odsadit výstup.

(Zděděno od TraceListener)
TraceOutputOptions

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

(Zděděno od TraceListener)

Metody

Close()

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

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

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy používané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 nástrojem a volitelně uvolní spravované prostředky.

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

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

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

Fail(String, String)

Vygeneruje nebo zobrazí podrobné zprávy 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í hashovací funkce.

(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é trasovacím naslouchacím procesem.

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

Získá aktuální Type instanci.

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

Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci.

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

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

(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)

Zapíše trasovací informace, 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[])

Zapíše trasovací informace, pole datových objektů a informací o událostech do výstupu specifického pro naslouchací proces.

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

Zapíše trasování 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álostech do výstupu specifického pro naslouchací proces.

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

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

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

Zapíše trasovací informace, 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)

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(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(String)

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

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)
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)

Zapíše 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, 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(String)

Zapíše výstup do OutputDebugString funkce a do Log(Int32, String, String) metody následované návratovým znakem a řádkovým kanálem (\r\n).

WriteLine(String, String)

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

(Zděděno od TraceListener)

Platí pro

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

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

Viz také