DefaultTraceListener Třída

Definice

Poskytuje výchozí výstupní metody 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 metod 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)

Metody Faila WriteLine , Writezpůsobují, že trasovací informace budou zapsány pouze do DefaultTraceListener. K zápisu trasovacích informací všem naslouchacím procesům v Trace.Listeners 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í generují Write a WriteLine metody zprávu do funkce Win32 OutputDebugString a metody Debugger.Log .

Metoda Fail ve výchozím nastavení zobrazí pole 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. DefaultTraceListener Pokud není v kolekciListeners, nezobrazí se okno se zprávou. Lze DefaultTraceListener ji odebrat voláním Clear metody ve Listeners vlastnosti (System.Diagnostics.Trace.Listeners.Clear()). Pro .NET Framework aplikace můžete také použít <clear> prvek a <remove> prvek v konfiguračním souboru 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 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 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 Visual Basic přidejte /d:TRACE=True příznak do příkazového řádku kompilátoru.

U .NET Framework aplikací 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átován 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 "Default" jako její Name hodnota vlastnosti.

Vlastnosti

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í, jestli je naslouchací proces trasování bezpečný.

(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

Close()

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

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

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru 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 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)

Generuje nebo zobrazuje 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í funkce hash.

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

Načte aktuální objekt služby ž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()

Type Získá aktuální instanci.

(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ří použádnou kopii aktuálního souboru Object.

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

Vytvoří kopii aktuálního objektu bez MarshalByRefObject podmět.

(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 informace o trasování, datový objekt a informace o událostech do konkrétního výstupu naslouchacího procesu.

(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 naslouchacího procesu specifického výstupu.

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

Zapíše trasování a informace o událostech do konkrétního výstupu naslouchacího procesu.

(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 naslouchacího procesu specifického výstupu.

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

Zapíše informace o trasování, formátované pole objektů a informací o událostech do konkrétního výstupu naslouchacího procesu.

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

Zapíše informace o trasování, zprávu, související identitu aktivity a informace o událostech do konkrétního výstupu naslouchacího procesu.

(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 obnoví 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 a spojnicovým kanálem (\r\n).

WriteLine(String, String)

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

(Zděděno od TraceListener)

Platí pro

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

Tato třída je bezpečná pro vlákna.

Viz také