DefaultTraceListener Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İzleme için varsayılan çıkış yöntemlerini ve davranışını sağlar.
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
- Devralma
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, olasılık ve istatistiklerde kullanılan değerler olan binom katsayılarını hesaplar. Bu örnekte sonuçları izlemek ve hataları günlüğe kaydetmek için bir DefaultTraceListener kullanılır. Yeni DefaultTraceListenerbir oluşturur, bunu koleksiyona Trace.Listeners ekler ve özelliğini komut satırı bağımsız değişkenlerinde belirtilen günlük dosyasına ayarlar LogFileName .
Giriş parametresi işlenirken bir hata algılanırsa veya işlev bir özel durum oluşturursa CalcBinomial
, Fail yöntem günlüğe kaydeder ve bir hata iletisi görüntüler. AssertUiEnabled özelliği isefalse
, hata iletisi de konsola yazılır. Sonuç başarıyla hesaplandığında ve WriteLine(String) yöntemleri sonuçları Write(String) günlük dosyasına yazar.
Fail, Writeve WriteLine yöntemleri izleme bilgilerinin yalnızca öğesine yazılmasına DefaultTraceListenerneden olur. İzleme bilgilerini koleksiyondaki Trace.Listeners tüm dinleyicilere yazmak için sınıfının , Writeve WriteLine yöntemlerini Trace kullanınFail.
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
Açıklamalar
Bu sınıfın bir örneği ve Trace.Listeners koleksiyonlarına Debug.Listeners otomatik olarak eklenir. Açıkça ikinci DefaultTraceListener bir ileti eklemek hata ayıklayıcı çıkış penceresinde yinelenen iletilere ve onaylar için yinelenen ileti kutularına neden olur.
Varsayılan olarak, Write ve WriteLine yöntemleri iletiyi Win32 OutputDebugString işlevine ve yöntemine Debugger.Log yayar.
Fail yöntemi, uygulama bir kullanıcı arabirimi modunda çalışırken varsayılan olarak bir ileti kutusu görüntüler; ayrıca kullanarak WriteLineiletiyi yayar.
Not
ve Fail yöntem çağrıları için Assert ileti kutusunun görüntülenmesi, varlığının DefaultTraceListenerdurumuna bağlıdır. DefaultTraceListener koleksiyonunda Listeners değilse, ileti kutusu görüntülenmez. DefaultTraceListener özelliğinde Listeners yöntemi çağrılarak Clear kaldırılabilir (System.Diagnostics.Trace.Listeners.Clear()
. .NET Framework uygulamalar için, uygulamanızın yapılandırma dosyasında clear <> öğesini ve <remove> öğesini de kullanabilirsiniz.
İzleme dinleyicisi kullanmak için izlemeyi veya hata ayıklamayı etkinleştirmeniz gerekir. Aşağıdaki söz dizimi derleyiciye özgüdür. C# veya Visual Basic dışında derleyiciler kullanıyorsanız, derleyicinizin belgelerine bakın.
C# dilinde hata ayıklamayı etkinleştirmek için,
/d:DEBUG
kodunuzu derlerken derleyici komut satırına bayrağını ekleyin veya dosyanızın en üstüne ekleyin#define DEBUG
. Visual Basic'te, bayrağını/d:DEBUG=True
derleyici komut satırına ekleyin.C# dilinde izlemeyi etkinleştirmek için,
/d:TRACE
kodunuzu derlerken derleyici komut satırına bayrağını ekleyin veya dosyanızın en üstüne ekleyin#define TRACE
. Visual Basic'te, bayrağını/d:TRACE=True
derleyici komut satırına ekleyin.
.NET Framework uygulamalar için, uygulamanızın adına karşılık gelen yapılandırma dosyasını düzenleyerek izleme dinleyicisi ekleyebilirsiniz. Bu dosya içinde bir dinleyici ekleyebilir, türünü ve parametrelerini ayarlayabilir, dinleyiciyi kaldırabilir veya uygulama tarafından daha önce ayarlanan tüm dinleyicileri temizleyebilirsiniz. Yapılandırma dosyası aşağıdaki örneğe benzer şekilde biçimlendirilmelidir:
<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>
Oluşturucular
DefaultTraceListener() |
Özellik değeri olarak "Default" ile sınıfının yeni bir örneğini DefaultTraceListenerName başlatır. |
Özellikler
AssertUiEnabled |
Uygulamanın kullanıcı arabirimi modunda çalışıp çalışmadığını belirten bir değer alır veya ayarlar. |
Attributes |
Uygulama yapılandırma dosyasında tanımlanan özel izleme dinleyicisi özniteliklerini alır. (Devralındığı yer: TraceListener) |
Filter |
İzleme dinleyicisi için izleme filtresini alır veya ayarlar. (Devralındığı yer: TraceListener) |
IndentLevel |
Girinti düzeyini alır veya ayarlar. (Devralındığı yer: TraceListener) |
IndentSize |
Girintideki boşlukların sayısını alır veya ayarlar. (Devralındığı yer: TraceListener) |
IsThreadSafe |
İzleme dinleyicisinin iş parçacığı güvenli olup olmadığını belirten bir değer alır. (Devralındığı yer: TraceListener) |
LogFileName |
İzleme veya hata ayıklama iletileri yazacak günlük dosyasının adını alır veya ayarlar. |
Name |
Bu TraceListeneriçin bir ad alır veya ayarlar. (Devralındığı yer: TraceListener) |
NeedIndent |
Çıkışı girintileyip girintilemeyeceğini belirten bir değer alır veya ayarlar. (Devralındığı yer: TraceListener) |
TraceOutputOptions |
İzleme çıkışı seçeneklerini alır veya ayarlar. (Devralındığı yer: TraceListener) |
Yöntemler
Close() |
Türetilmiş bir sınıfta geçersiz kılındığında, artık izleme veya hata ayıklama çıkışı almaması için çıkış akışını kapatır. (Devralındığı yer: TraceListener) |
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Dispose() |
TraceListener tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: TraceListener) |
Dispose(Boolean) |
TraceListener tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır. (Devralındığı yer: TraceListener) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Fail(String) |
Her zaman başarısız olan bir onay için bir ileti ve yığın izlemesi yayar veya görüntüler. |
Fail(String, String) |
Her zaman başarısız olan bir onay için ayrıntılı iletiler ve yığın izlemesi yayar veya görüntüler. |
Flush() |
Türetilmiş bir sınıfta geçersiz kılındığında çıkış arabelleği boşaltılır. (Devralındığı yer: TraceListener) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetSupportedAttributes() |
İzleme dinleyicisi tarafından desteklenen özel öznitelikleri alır. (Devralındığı yer: TraceListener) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
İzleme bilgilerini, veri nesnesini ve olay bilgilerini dinleyiciye özel çıktıya yazar. (Devralındığı yer: TraceListener) |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
İzleme bilgilerini, bir veri nesneleri dizisini ve olay bilgilerini dinleyiciye özel çıktıya yazar. (Devralındığı yer: TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
dinleyiciye özgü çıkışa izleme ve olay bilgileri yazar. (Devralındığı yer: TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
İzleme bilgilerini, bir iletiyi ve olay bilgilerini dinleyiciye özel çıkışa yazar. (Devralındığı yer: TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Dinleyiciye özgü çıktıya, biçimlendirilmiş bir nesne dizisi ve olay bilgileri olan izleme bilgilerini yazar. (Devralındığı yer: TraceListener) |
TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
İzleme bilgilerini, bir iletiyi, ilgili etkinlik kimliğini ve olay bilgilerini dinleyiciye özel çıktıya yazar. (Devralındığı yer: TraceListener) |
Write(Object) |
nesnesinin ToString() yönteminin değerini sınıfını uygularken oluşturduğunuz dinleyiciye TraceListener yazar. (Devralındığı yer: TraceListener) |
Write(Object, String) |
Sınıfını uygularken oluşturduğunuz dinleyiciye bir kategori adı ve nesnenin ToString() yönteminin TraceListener değerini yazar. (Devralındığı yer: TraceListener) |
Write(String) |
Çıkışı işlevine |
Write(String, String) |
Sınıfını uygularken TraceListener oluşturduğunuz dinleyiciye bir kategori adı ve ileti yazar. (Devralındığı yer: TraceListener) |
WriteIndent() |
Bu sınıfı uygularken oluşturduğunuz dinleyiciye girintiyi yazar ve özelliğini olarak |
WriteLine(Object) |
nesnesinin ToString() yönteminin değerini sınıfını uygularken oluşturduğunuz dinleyiciye TraceListener yazar ve ardından bir satır sonlandırıcısı yazar. (Devralındığı yer: TraceListener) |
WriteLine(Object, String) |
Sınıfını uygularken oluşturduğunuz dinleyiciye bir kategori adı ve nesnenin ToString() yönteminin TraceListener değerini yazar ve ardından bir satır sonlandırıcısı yazar. (Devralındığı yer: TraceListener) |
WriteLine(String) |
Çıkışı işleve |
WriteLine(String, String) |
Sınıfı uygularken TraceListener oluşturduğunuz dinleyiciye bir kategori adı ve ileti yazar ve ardından bir satır sonlandırıcısı yazar. (Devralındığı yer: TraceListener) |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu sınıf iş parçacığı güvenlidir.