DefaultTraceListener Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- Warisan
- 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 saat aplikasi berjalan dalam mode antarmuka pengguna; metode ini 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> dalam file konfigurasi aplikasi Anda.
Anda harus mengaktifkan pelacakan atau penelusuran kesalahan untuk menggunakan pendengar jejak. Sintaks berikut adalah spesifik pengkompilasi. 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 tambahkan#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 ditetapkan 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 pendengar pelacakan kustom yang ditentukan dalam file konfigurasi aplikasi. (Diperoleh dari TraceListener) |
Filter |
Mendapatkan atau mengatur filter pelacakan untuk pendengar jejak. (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() |
Saat 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 digunakan oleh TraceListener 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() |
Saat ditimpa di kelas turunan, hapus 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 dari 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 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 jejak dan informasi 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 |
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 |
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 |
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.