DefaultTraceListener Klass

Definition

Tillhandahåller standardutdatametoderna och beteendet för spårning.

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
Arv
DefaultTraceListener
Arv
DefaultTraceListener
Attribut

Exempel

I följande kodexempel beräknas binomiella koefficienter, som är värden som används i sannolikhet och statistik. I det här exemplet används en DefaultTraceListener för att spåra resultat och loggfel. Den skapar en ny DefaultTraceListener, lägger till den i Trace.Listeners samlingen och anger LogFileName egenskapen till loggfilen som anges i kommandoradsargumenten.

Om ett fel identifieras när indataparametern bearbetas, eller om CalcBinomial funktionen utlöser ett undantag, Fail loggar metoden och visar ett felmeddelande. Om egenskapen AssertUiEnabled är falseskrivs felmeddelandet också till konsolen. När resultatet har beräknats Write(String) skriver metoderna och WriteLine(String) resultatet till loggfilen.

Metoderna Fail, Writeoch WriteLine gör att spårningsinformation endast skrivs till DefaultTraceListener. Om du vill skriva spårningsinformation till alla lyssnare i Trace.Listeners samlingen använder du Failklassens metoder Write , WriteLineoch 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

Kommentarer

En instans av den här klassen läggs automatiskt till i samlingarna Debug.Listeners och Trace.Listeners . Att uttryckligen lägga till en andra DefaultTraceListener orsakar duplicerade meddelanden i felsökningsprogrammets utdatafönster och duplicerade meddelanderutor för anspråk.

Som standard Write sänder metoderna och WriteLine meddelandet till funktionen Win32 OutputDebugString och metoden Debugger.Log .

Metoden Fail visar som standard en meddelanderuta när programmet körs i användargränssnittsläge. Den genererar även meddelandet med .WriteLine

Note

Visningen av meddelanderutan för Assert och Fail metodanrop beror på förekomsten av DefaultTraceListener. Om inte DefaultTraceListener finns i Listeners samlingen visas inte meddelanderutan. DefaultTraceListener Kan tas bort genom att anropa Clear metoden för Listeners egenskapen (System.Diagnostics.Trace.Listeners.Clear()). För .NET Framework-appar kan du också använda elementet <clear> och <remove> element i appens konfigurationsfil.

Du måste aktivera spårning eller felsökning för att kunna använda en spårningslyssnare. Följande syntax är kompilatorspecifik. Om du använder andra kompilatorer än C# eller Visual Basic läser du dokumentationen för kompilatorn.

  • Om du vill aktivera felsökning i C# lägger du till /d:DEBUG flaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till #define DEBUG den överst i filen. I Visual Basic lägger du till flaggan /d:DEBUG=True på kommandoraden för kompilatorn.

  • Om du vill aktivera spårning i C# lägger du till /d:TRACE flaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till #define TRACE den överst i filen. I Visual Basic lägger du till flaggan /d:TRACE=True på kommandoraden för kompilatorn.

För .NET Framework-appar kan du lägga till en spårningslyssnare genom att redigera konfigurationsfilen som motsvarar namnet på ditt program. I den här filen kan du lägga till en lyssnare, ange dess typ och ange dess parametrar, ta bort en lyssnare eller rensa alla lyssnare som tidigare angetts av programmet. Konfigurationsfilen ska formateras på liknande sätt som i följande exempel:

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

Konstruktorer

Name Description
DefaultTraceListener()

Initierar en ny instans av DefaultTraceListener klassen med "Standard" som egenskapsvärde Name .

Egenskaper

Name Description
AssertUiEnabled

Hämtar eller anger ett värde som anger om programmet körs i användargränssnittsläge.

Attributes

Hämtar attributen för anpassad spårningslyssnare som definierats i programkonfigurationsfilen.

(Ärvd från TraceListener)
Filter

Hämtar eller anger spårningsfiltret för spårningslyssnaren.

(Ärvd från TraceListener)
IndentLevel

Hämtar eller anger indragsnivån.

(Ärvd från TraceListener)
IndentSize

Hämtar eller anger antalet blanksteg i ett indrag.

(Ärvd från TraceListener)
IsThreadSafe

Hämtar ett värde som anger om spårningslyssnaren är trådsäker.

(Ärvd från TraceListener)
LogFileName

Hämtar eller anger namnet på en loggfil som du vill skriva spårnings- eller felsökningsmeddelanden till.

Name

Hämtar eller anger ett namn för den här TraceListener.

(Ärvd från TraceListener)
NeedIndent

Hämtar eller anger ett värde som anger om utdata ska dras in.

(Ärvd från TraceListener)
TraceOutputOptions

Hämtar eller anger alternativen för spårningsutdata.

(Ärvd från TraceListener)

Metoder

Name Description
Close()

När den åsidosätts i en härledd klass stänger utdataströmmen så att den inte längre tar emot spårning eller felsökning av utdata.

(Ärvd från TraceListener)
CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
Dispose()

Släpper alla resurser som används av TraceListener.

(Ärvd från TraceListener)
Dispose(Boolean)

Släpper de ohanterade resurser som används av TraceListener och släpper eventuellt de hanterade resurserna.

(Ärvd från TraceListener)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Fail(String, String)

Genererar eller visar detaljerade meddelanden och en stackspårning för en försäkran som alltid misslyckas.

Fail(String)

Genererar eller visar ett meddelande och en stackspårning för en försäkran som alltid misslyckas.

Flush()

När den åsidosättas i en härledd klass töms utdatabufferten.

(Ärvd från TraceListener)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetLifetimeService()
Föråldrad.

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetSupportedAttributes()

Hämtar anpassade attribut som stöds av spårningslyssnaren.

(Ärvd från TraceListener)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InitializeLifetimeService()
Föråldrad.

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Skriver spårningsinformation, ett dataobjekt och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Skriver spårningsinformation, en matris med dataobjekt och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Skriver spårningsinformation, en formaterad matris med objekt och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Skriver spårningsinformation, ett meddelande och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Skriver spårnings- och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Skriver spårningsinformation, ett meddelande, en relaterad aktivitetsidentitet och händelseinformation till lyssnarens specifika utdata.

(Ärvd från TraceListener)
Write(Object, String)

Skriver ett kategorinamn och värdet för objektets ToString() metod till lyssnaren som du skapar när du implementerar TraceListener klassen.

(Ärvd från TraceListener)
Write(Object)

Skriver värdet för objektets ToString() -metod till lyssnaren som du skapar när du implementerar TraceListener klassen.

(Ärvd från TraceListener)
Write(String, String)

Skriver ett kategorinamn och ett meddelande till lyssnaren som du skapar när du implementerar TraceListener klassen.

(Ärvd från TraceListener)
Write(String)

Skriver utdata till OutputDebugString funktionen och till Log(Int32, String, String) -metoden.

WriteIndent()

Skriver indraget till lyssnaren som du skapar när du implementerar den här klassen och återställer NeedIndent egenskapen till false.

(Ärvd från TraceListener)
WriteLine(Object, String)

Skriver ett kategorinamn och värdet för objektets ToString() metod till lyssnaren som du skapar när du implementerar TraceListener klassen, följt av en radavgränsare.

(Ärvd från TraceListener)
WriteLine(Object)

Skriver värdet för objektets ToString() -metod till lyssnaren du skapar när du implementerar TraceListener klassen, följt av en radavslutare.

(Ärvd från TraceListener)
WriteLine(String, String)

Skriver ett kategorinamn och ett meddelande till lyssnaren som du skapar när du implementerar TraceListener klassen, följt av en radavgränsare.

(Ärvd från TraceListener)
WriteLine(String)

Skriver utdata till OutputDebugString funktionen och till Log(Int32, String, String) metoden följt av en vagnretur och radmatning (\r\n).

Gäller för

Trådsäkerhet

Den här klassen är trådsäker.

Se även