DefaultTraceListener Kelas

Definisi

Menyediakan metode dan perilaku output default untuk pelacakan.

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
Warisan
DefaultTraceListener
Warisan
DefaultTraceListener
Atribut

Contoh

Contoh kode berikut menghitung koefisien binomial, yang merupakan nilai yang digunakan dalam probabilitas dan statistik. Contoh ini menggunakan DefaultTraceListener untuk melacak hasil dan kesalahan log. Ini membuat baru DefaultTraceListener, menambahkannya ke Trace.Listeners koleksi, dan mengatur LogFileName properti ke file log yang ditentukan dalam argumen baris perintah.

Jika kesalahan terdeteksi saat memproses parameter input, atau jika CalcBinomial fungsi melempar pengecualian, Fail metode mencatat dan menampilkan pesan kesalahan. AssertUiEnabled Jika properti adalah false, pesan kesalahan juga ditulis ke konsol. Ketika hasilnya berhasil dihitung, Write(String) metode dan WriteLine(String) menulis hasilnya ke file log.

Metode Fail, Write, dan WriteLine menyebabkan informasi pelacakan ditulis hanya ke DefaultTraceListener. Untuk menulis informasi pelacakan ke semua pendengar dalam Trace.Listeners koleksi, gunakan Failmetode , Write, dan WriteLine kelas 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

Keterangan

Instans kelas ini secara otomatis ditambahkan ke Debug.Listeners koleksi dan Trace.Listeners . Menambahkan pesan kedua DefaultTraceListener secara eksplisit menyebabkan pesan duplikat di jendela output debugger dan kotak pesan duplikat untuk pernyataan.

Secara default, Write metode dan WriteLine memancarkan pesan ke fungsi Win32 OutputDebugString dan ke Debugger.Log metode .

Metode ini Fail , secara default, menampilkan kotak pesan ketika aplikasi berjalan dalam mode antarmuka pengguna; itu juga memancarkan pesan menggunakan WriteLine.

Catatan

Tampilan kotak pesan untuk Assert panggilan metode dan Fail tergantung pada keberadaan DefaultTraceListener. DefaultTraceListener Jika tidak ada dalam Listeners koleksi, kotak pesan tidak ditampilkan. DefaultTraceListener dapat dihapus dengan memanggil Clear metode pada Listeners properti (System.Diagnostics.Trace.Listeners.Clear()). Untuk aplikasi .NET Framework, Anda juga dapat menggunakan <elemen yang jelas> dan <elemen hapus> di file konfigurasi aplikasi Anda.

Anda harus mengaktifkan pelacakan atau penelusuran kesalahan untuk menggunakan pendengar jejak. Sintaks berikut adalah kompilator spesifik. Jika Anda menggunakan pengkompilasi selain C# atau Visual Basic, lihat dokumentasi untuk pengkompilasi Anda.

  • Untuk mengaktifkan penelusuran kesalahan di C#, tambahkan /d:DEBUG bendera ke baris perintah pengkompilasi saat Anda mengkompilasi kode, atau tambahkan #define DEBUG ke bagian atas file Anda. Di Visual Basic, tambahkan /d:DEBUG=True bendera ke baris perintah pengkompilasi.

  • Untuk mengaktifkan pelacakan di C#, tambahkan /d:TRACE bendera ke baris perintah pengkompilasi saat Anda mengkompilasi kode, atau menambahkan #define TRACE ke bagian atas file Anda. Di Visual Basic, tambahkan /d:TRACE=True bendera ke baris perintah pengkompilasi.

Untuk aplikasi .NET Framework, Anda dapat menambahkan pendengar jejak dengan mengedit file konfigurasi yang sesuai dengan nama aplikasi Anda. Dalam file ini, Anda dapat menambahkan pendengar, mengatur jenisnya dan mengatur parameternya, menghapus pendengar, atau menghapus semua listener yang sebelumnya diatur oleh aplikasi. File konfigurasi harus diformat mirip dengan contoh berikut:

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

Konstruktor

DefaultTraceListener()

Menginisialisasi instans DefaultTraceListener baru kelas dengan "Default" sebagai nilai propertinya Name .

Properti

AssertUiEnabled

Mendapatkan atau menetapkan nilai yang menunjukkan apakah aplikasi berjalan dalam mode antarmuka pengguna.

Attributes

Mendapatkan atribut listener pelacakan kustom yang ditentukan dalam file konfigurasi aplikasi.

(Diperoleh dari TraceListener)
Filter

Mendapatkan atau mengatur filter pelacakan untuk pendengar pelacakan.

(Diperoleh dari TraceListener)
IndentLevel

Mendapatkan atau mengatur tingkat inden.

(Diperoleh dari TraceListener)
IndentSize

Mendapatkan atau mengatur jumlah spasi dalam inden.

(Diperoleh dari TraceListener)
IsThreadSafe

Mendapatkan nilai yang menunjukkan apakah pendengar jejak aman untuk utas.

(Diperoleh dari TraceListener)
LogFileName

Mendapatkan atau mengatur nama file log untuk menulis jejak atau men-debug pesan.

Name

Mendapatkan atau menetapkan nama untuk ini TraceListener.

(Diperoleh dari TraceListener)
NeedIndent

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mengindentasi output.

(Diperoleh dari TraceListener)
TraceOutputOptions

Mendapatkan atau mengatur opsi output jejak.

(Diperoleh dari TraceListener)

Metode

Close()

Ketika ditimpa di kelas turunan, menutup aliran output sehingga tidak lagi menerima output pelacakan atau penelusuran kesalahan.

(Diperoleh dari TraceListener)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Dispose()

Merilis semua sumber daya yang TraceListenerdigunakan oleh .

(Diperoleh dari TraceListener)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang TraceListener digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari TraceListener)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Fail(String)

Memancarkan atau menampilkan pesan dan jejak tumpukan untuk pernyataan yang selalu gagal.

Fail(String, String)

Memancarkan atau menampilkan pesan terperinci dan jejak tumpukan untuk pernyataan yang selalu gagal.

Flush()

Ketika ditimpa di kelas turunan, siram buffer output.

(Diperoleh dari TraceListener)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetSupportedAttributes()

Mendapatkan atribut kustom yang didukung oleh pendengar pelacakan.

(Diperoleh dari TraceListener)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Menulis informasi pelacakan, objek data, dan informasi peristiwa ke output spesifik pendengar.

(Diperoleh dari TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Menulis informasi pelacakan, array objek data, dan informasi peristiwa ke output spesifik pendengar.

(Diperoleh dari TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Menulis informasi pelacakan dan peristiwa ke output spesifik pendengar.

(Diperoleh dari TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Menulis informasi pelacakan, pesan, dan informasi peristiwa ke output spesifik pendengar.

(Diperoleh dari TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Menulis informasi pelacakan, array objek dan informasi peristiwa yang diformat ke output spesifik pendengar.

(Diperoleh dari TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Menulis informasi pelacakan, pesan, identitas aktivitas terkait, dan informasi peristiwa ke output spesifik pendengar.

(Diperoleh dari TraceListener)
Write(Object)

Menulis nilai metode objek ToString() ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas.

(Diperoleh dari TraceListener)
Write(Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas.

(Diperoleh dari TraceListener)
Write(String)

Menulis output ke OutputDebugString fungsi dan ke Log(Int32, String, String) metode .

Write(String, String)

Menulis nama kategori dan pesan ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas.

(Diperoleh dari TraceListener)
WriteIndent()

Menulis inden ke pendengar yang Anda buat saat mengimplementasikan kelas ini, dan mengatur ulang NeedIndent properti ke false.

(Diperoleh dari TraceListener)
WriteLine(Object)

Menulis nilai metode objek ToString() ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas, diikuti dengan terminator baris.

(Diperoleh dari TraceListener)
WriteLine(Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas, diikuti dengan terminator baris.

(Diperoleh dari TraceListener)
WriteLine(String)

Menulis output ke OutputDebugString fungsi dan ke Log(Int32, String, String) metode , diikuti dengan pengembalian pengangkutan dan umpan baris (\r\n).

WriteLine(String, String)

Menulis nama kategori dan pesan ke pendengar yang Anda buat saat mengimplementasikan TraceListener kelas, diikuti dengan terminator baris.

(Diperoleh dari TraceListener)

Berlaku untuk

Keamanan Thread

Kelas ini aman untuk utas.

Lihat juga