DefaultTraceListener Osztály

Definíció

Biztosítja a nyomkövetés alapértelmezett kimeneti metódusát és működését.

public ref class DefaultTraceListener : System::Diagnostics::TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
    inherit TraceListener
type DefaultTraceListener = class
    inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
Öröklődés
DefaultTraceListener
Attribútumok

Példák

Az alábbi példakód binomiális együtthatókat számít ki, amelyek a valószínűségben és a statisztikákban használt értékek. Ez a példa az DefaultTraceListener eredmények és a naplóhibák nyomon követésére használ. Létrehoz egy újat DefaultTraceListener, hozzáadja a Trace.Listeners gyűjteményhez, és beállítja a LogFileName tulajdonságot a parancssori argumentumokban megadott naplófájlra.

Ha hiba észlelhető a bemeneti paraméter feldolgozása során, vagy ha a CalcBinomial függvény kivételt jelez, a Fail metódus naplózza és hibaüzenetet jelenít meg. Ha a AssertUiEnabled tulajdonság az false, a hibaüzenet a konzolra is meg van írva. Az eredmény sikeres kiszámításakor a Write(String) metódusok az WriteLine(String) eredményeket a naplófájlba írják.

A Fail, Writeés WriteLine metódusok miatt a nyomkövetési információk csak a DefaultTraceListener. Ha nyomkövetési információkat szeretne írni a Trace.Listeners gyűjtemény összes figyelőjének, használja az Failosztály , Writeés WriteLine metódusait 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

Megjegyzések

Az osztály egy példánya automatikusan hozzáadódik a Debug.Listeners gyűjteményekhez.Trace.Listeners A második DefaultTraceListener elem explicit hozzáadása ismétlődő üzeneteket okoz a hibakereső kimeneti ablakában, és ismétlődő üzenetmezőket az állításokhoz.

Alapértelmezés szerint a Write metódusok a WriteLine Win32 OutputDebugString függvénynek és a metódusnak küldik az Debugger.Log üzenetet.

A Fail metódus alapértelmezés szerint egy üzenetmezőt jelenít meg, amikor az alkalmazás felhasználói felület módban fut; az üzenetet a következővel WriteLineis kibocsátja:

Note

A hívásokat és Fail metódushívásokat tartalmazó üzenetmező Assert megjelenítése az üzenet jelenlététől DefaultTraceListenerfügg. Ha az DefaultTraceListener üzenet nem szerepel a Listeners gyűjteményben, az üzenetmező nem jelenik meg. A DefaultTraceListener metódus Listeners a tulajdonságon (System.Diagnostics.Trace.Listeners.Clear()) való meghívásával Clear távolítható el. .NET Framework-alkalmazások esetében a <clear> elem és a <remove> elem is használható az alkalmazás konfigurációs fájljában.

A nyomkövetési vagy hibakeresési figyelő használatához engedélyeznie kell a nyomkövetést vagy a hibakeresést. Az alábbi szintaxis fordítóspecifikus. Ha nem C# vagy Visual Basic fordítót használ, tekintse meg a fordító dokumentációját.

  • Ha engedélyezni szeretné a hibakeresést a C#-ban, vegye fel a /d:DEBUG jelölőt a fordító parancssorba a kód lefordításakor, vagy vegye fel #define DEBUG a fájl tetejére. A Visual Basic adja hozzá a /d:DEBUG=True jelzőt a fordító parancssorához.

  • Ha c#-ban szeretné engedélyezni a nyomkövetést, adja hozzá a /d:TRACE jelölőt a fordító parancssorához a kód lefordításakor, vagy vegye fel #define TRACE a fájl tetejére. A Visual Basic adja hozzá a /d:TRACE=True jelzőt a fordító parancssorához.

A .NET Framework-alkalmazásokhoz hozzáadhat nyomkövetési figyelőt az alkalmazás nevének megfelelő konfigurációs fájl szerkesztésével. Ebben a fájlban hozzáadhat egy figyelőt, beállíthatja annak típusát és paramétereit, eltávolíthat egy figyelőt, vagy törölheti az alkalmazás által korábban beállított összes figyelőt. A konfigurációs fájlt az alábbi példához hasonlóan kell formázni:

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

Konstruktorok

Name Description
DefaultTraceListener()

Inicializálja az DefaultTraceListener osztály új példányát az "Alapértelmezett" tulajdonságértékkel Name .

Tulajdonságok

Name Description
AssertUiEnabled

Lekéri vagy beállít egy értéket, amely jelzi, hogy az alkalmazás felhasználói felület módban fut-e.

Attributes

Lekéri az alkalmazáskonfigurációs fájlban definiált egyéni nyomkövetésfigyelő attribútumokat.

(Öröklődés forrása TraceListener)
Filter

Lekéri vagy beállítja a nyomkövetési szűrőt a nyomkövetési figyelőhöz.

(Öröklődés forrása TraceListener)
IndentLevel

Lekéri vagy beállítja a behúzási szintet.

(Öröklődés forrása TraceListener)
IndentSize

Lekéri vagy beállítja a behúzásban lévő szóközök számát.

(Öröklődés forrása TraceListener)
IsThreadSafe

Egy értéket kap, amely jelzi, hogy a nyomkövetési figyelő szálbiztos-e.

(Öröklődés forrása TraceListener)
LogFileName

Lekéri vagy beállítja egy naplófájl nevét nyomkövetési vagy hibakeresési üzenetek írásához.

Name

Lekéri vagy beállítja ennek TraceListenera névnek a nevét.

(Öröklődés forrása TraceListener)
NeedIndent

Beolvas vagy beállít egy értéket, amely jelzi, hogy be szeretné-e húzni a kimenetet.

(Öröklődés forrása TraceListener)
TraceOutputOptions

Lekéri vagy beállítja a nyomkövetési kimeneti beállításokat.

(Öröklődés forrása TraceListener)

Metódusok

Name Description
Close()

Ha felülbírál egy származtatott osztályban, bezárja a kimeneti adatfolyamot, hogy többé ne kapja meg a nyomkövetési vagy hibakeresési kimenetet.

(Öröklődés forrása TraceListener)
CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
Dispose()

Felszabadítja a .-hez használt összes erőforrást TraceListener.

(Öröklődés forrása TraceListener)
Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által TraceListener használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

(Öröklődés forrása TraceListener)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
Fail(String, String)

Részletes üzeneteket és veremkövetést bocsát ki vagy jelenít meg egy olyan állításhoz, amely mindig meghiúsul.

Fail(String)

Üzenetet és veremkövetőt bocsát ki vagy jelenít meg egy olyan állításhoz, amely mindig sikertelen.

Flush()

Ha egy származtatott osztályban felül van bírálva, kiüríti a kimeneti puffert.

(Öröklődés forrása TraceListener)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetLifetimeService()

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetSupportedAttributes()

Lekéri a nyomkövetési figyelő által támogatott egyéni attribútumokat.

(Öröklődés forrása TraceListener)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Nyomkövetési információkat, adatobjektumokat és eseményadatokat ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Nyomkövetési információkat, adatobjektumokat és eseményinformációkat tartalmazó tömböt ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Nyomkövetési információkat, egy formázott objektumtömböt és eseményinformációt ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Nyomkövetési információkat, üzenetet és eseményadatokat ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Nyomkövetési és eseményinformációkat ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Nyomkövetési információkat, üzenetet, kapcsolódó tevékenységidentitást és eseményadatokat ír a figyelő adott kimenetére.

(Öröklődés forrása TraceListener)
Write(Object, String)

Kategórianevet és az objektum ToString() metódusának értékét írja az osztály megvalósításakor TraceListener létrehozott figyelőnek.

(Öröklődés forrása TraceListener)
Write(Object)

Az objektum ToString() metódusának értékét az osztály megvalósításakor TraceListener létrehozott figyelőnek írja.

(Öröklődés forrása TraceListener)
Write(String, String)

Kategórianevet és üzenetet ír az osztály megvalósításakor TraceListener létrehozott figyelőnek.

(Öröklődés forrása TraceListener)
Write(String)

A kimenetet a OutputDebugString függvénybe és a Log(Int32, String, String) metódusba írja.

WriteIndent()

Az osztály megvalósításakor létrehozott figyelőbe írja a behúzást, és alaphelyzetbe állítja a NeedIndent tulajdonságot false.

(Öröklődés forrása TraceListener)
WriteLine(Object, String)

Egy kategórianevet és az objektum ToString() metódusának értékét írja az osztály megvalósításakor TraceListener létrehozott figyelőnek, amelyet egy sor terminátor követ.

(Öröklődés forrása TraceListener)
WriteLine(Object)

Az objektum ToString() metódusának értékét az osztály megvalósításakor TraceListener létrehozott figyelőnek írja, amelyet egy sor terminátor követ.

(Öröklődés forrása TraceListener)
WriteLine(String, String)

Egy kategórianevet és egy üzenetet ír a figyelőnek, amelyet az TraceListener osztály megvalósításakor hoz létre, majd egy sor terminátort.

(Öröklődés forrása TraceListener)
WriteLine(String)

A kimenetet a OutputDebugString függvénybe és a Log(Int32, String, String) metódusba írja, majd egy kocsivissza- és sorbetöltést (\r\n).

A következőre érvényes:

Szálbiztonság

Ez az osztály szálbiztos.

Lásd még