TraceSource 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.
Uygulamaların kodun yürütülmesini izlemesine ve izleme iletilerini kaynaklarıyla ilişkilendirmesine olanak tanıyan bir dizi yöntem ve özellik sağlar.
public ref class TraceSource
public class TraceSource
type TraceSource = class
Public Class TraceSource
- Devralma
-
TraceSource
Örnekler
Aşağıdaki kod örneği, izlemeleri dinleyicilere iletmek için TraceSource sınıfının kullanımını gösterir. Örnekte anahtar ve filtre kullanımı da gösterilmektedir.
/////////////////////////////////////////////////////////////////////////////////
//
// NAME TraceSource2.cpp : main project file
//
/////////////////////////////////////////////////////////////////////////////////
// The following configuration file can be used with this sample.
// When using a configuration file #define ConfigFile.
// <source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
// <add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
// <remove name ="Default" />
// <!-- You can set the level at which tracing is to occur -->
// <add name="SourceSwitch" value="Warning" />
// <!-- You can turn tracing off -->
// <!--add name="SourceSwitch" value="Off" -->
// <trace autoflush="true" indentsize="4"></trace>
#define TRACE
//#define ConfigFile
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Diagnostics;
using namespace System::Reflection;
using namespace System::IO;
using namespace System::Security::Permissions;
void DisplayProperties(TraceSource^ ts); // Forward Declaration
int main()
{
TraceSource^ ts = gcnew TraceSource("TraceTest");
try
{
// Initialize trace switches.
#if(!ConfigFile)
SourceSwitch^ sourceSwitch = gcnew SourceSwitch("SourceSwitch", "Verbose");
ts->Switch = sourceSwitch;
int idxConsole = ts->Listeners->Add(gcnew System::Diagnostics::ConsoleTraceListener());
ts->Listeners[idxConsole]->Name = "console";
#endif
DisplayProperties(ts);
ts->Listeners["console"]->TraceOutputOptions |= TraceOptions::Callstack;
ts->TraceEvent(TraceEventType::Warning, 1);
ts->Listeners["console"]->TraceOutputOptions = TraceOptions::DateTime;
// Issue file not found message as a warning.
ts->TraceEvent(TraceEventType::Warning, 2, "File Test not found");
// Issue file not found message as a verbose event using a formatted string.
ts->TraceEvent(TraceEventType::Verbose, 3, "File {0} not found.", "test");
// Issue file not found message as information.
ts->TraceInformation("File {0} not found.", "test");
ts->Listeners["console"]->TraceOutputOptions |= TraceOptions::LogicalOperationStack;
// Issue file not found message as an error event.
ts->TraceEvent(TraceEventType::Error, 4, "File {0} not found.", "test");
// Test the filter on the ConsoleTraceListener.
ts->Listeners["console"]->Filter = gcnew SourceFilter("No match");
ts->TraceData(TraceEventType::Error, 5,
"SourceFilter should reject this message for the console trace listener.");
ts->Listeners["console"]->Filter = gcnew SourceFilter("TraceTest");
ts->TraceData(TraceEventType::Error, 6,
"SourceFilter should let this message through on the console trace listener.");
ts->Listeners["console"]->Filter = nullptr;
// Use the TraceData method.
ts->TraceData(TraceEventType::Warning, 7, gcnew array<Object^>{ "Message 1", "Message 2" });
// Activity tests.
ts->TraceEvent(TraceEventType::Start, 9, "Will not appear until the switch is changed.");
ts->Switch->Level = SourceLevels::ActivityTracing | SourceLevels::Critical;
ts->TraceEvent(TraceEventType::Suspend, 10, "Switch includes ActivityTracing, this should appear");
ts->TraceEvent(TraceEventType::Critical, 11, "Switch includes Critical, this should appear");
ts->Flush();
ts->Close();
Console::WriteLine("Press enter key to exit.");
Console::Read();
}
catch (Exception ^e)
{
// Catch any unexpected exception.
Console::WriteLine("Unexpected exception: " + e->ToString());
Console::Read();
}
}
void DisplayProperties(TraceSource^ ts)
{
Console::WriteLine("TraceSource name = " + ts->Name);
// Console::WriteLine("TraceSource switch level = " + ts->Switch->Level); // error C3063: operator '+': all operands must have the same enumeration type
Console::WriteLine("TraceSource switch level = {0}", ts->Switch->Level); // SUCCESS: does compile. Weird
Console::WriteLine("TraceSource Attributes Count " + ts->Attributes->Count); // SUCCESS: also compiles. Really weird
Console::WriteLine("TraceSource Attributes Count = {0}", ts->Attributes->Count); // SUCCESS: okay, I give up. Somebody call me a cab.
Console::WriteLine("TraceSource switch = " + ts->Switch->DisplayName);
array<SwitchAttribute^>^ switches = SwitchAttribute::GetAll(TraceSource::typeid->Assembly);
for (int i = 0; i < switches->Length; i++)
{
Console::WriteLine("Switch name = " + switches[i]->SwitchName);
Console::WriteLine("Switch type = " + switches[i]->SwitchType);
}
#if(ConfigFile)
// Get the custom attributes for the TraceSource.
Console::WriteLine("Number of custom trace source attributes = "
+ ts.Attributes.Count);
foreach (DictionaryEntry de in ts.Attributes)
Console::WriteLine("Custom trace source attribute = "
+ de.Key + " " + de.Value);
// Get the custom attributes for the trace source switch.
foreach (DictionaryEntry de in ts.Switch.Attributes)
Console::WriteLine("Custom switch attribute = "
+ de.Key + " " + de.Value);
#endif
Console::WriteLine("Number of listeners = " + ts->Listeners->Count);
for each (TraceListener ^ traceListener in ts->Listeners)
{
Console::Write("TraceListener: " + traceListener->Name + "\t");
// The following output can be used to update the configuration file.
Console::WriteLine("AssemblyQualifiedName = " +
(traceListener->GetType()->AssemblyQualifiedName));
}
}
// The following configuration file can be used with this sample.
// When using a configuration file #define ConfigFile.
// <source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
// <add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
// <remove name ="Default" />
// <!-- You can set the level at which tracing is to occur -->
// <add name="SourceSwitch" value="Warning" />
// <!-- You can turn tracing off -->
// <!--add name="SourceSwitch" value="Off" -->
// <trace autoflush="true" indentsize="4"></trace>
#define TRACE
//#define ConfigFile
using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.IO;
using System.Security.Permissions;
namespace Testing
{
class TraceTest
{
// Initialize the trace source.
static TraceSource ts = new TraceSource("TraceTest");
[SwitchAttribute("SourceSwitch", typeof(SourceSwitch))]
static void Main()
{
try
{
// Initialize trace switches.
#if(!ConfigFile)
SourceSwitch sourceSwitch = new SourceSwitch("SourceSwitch", "Verbose");
ts.Switch = sourceSwitch;
int idxConsole = ts.Listeners.Add(new System.Diagnostics.ConsoleTraceListener());
ts.Listeners[idxConsole].Name = "console";
#endif
DisplayProperties(ts);
ts.Listeners["console"].TraceOutputOptions |= TraceOptions.Callstack;
ts.TraceEvent(TraceEventType.Warning, 1);
ts.Listeners["console"].TraceOutputOptions = TraceOptions.DateTime;
// Issue file not found message as a warning.
ts.TraceEvent(TraceEventType.Warning, 2, "File Test not found");
// Issue file not found message as a verbose event using a formatted string.
ts.TraceEvent(TraceEventType.Verbose, 3, "File {0} not found.", "test");
// Issue file not found message as information.
ts.TraceInformation("File {0} not found.", "test");
ts.Listeners["console"].TraceOutputOptions |= TraceOptions.LogicalOperationStack;
// Issue file not found message as an error event.
ts.TraceEvent(TraceEventType.Error, 4, "File {0} not found.", "test");
// Test the filter on the ConsoleTraceListener.
ts.Listeners["console"].Filter = new SourceFilter("No match");
ts.TraceData(TraceEventType.Error, 5,
"SourceFilter should reject this message for the console trace listener.");
ts.Listeners["console"].Filter = new SourceFilter("TraceTest");
ts.TraceData(TraceEventType.Error, 6,
"SourceFilter should let this message through on the console trace listener.");
ts.Listeners["console"].Filter = null;
// Use the TraceData method.
ts.TraceData(TraceEventType.Warning, 7, new object());
ts.TraceData(TraceEventType.Warning, 8, new object[] { "Message 1", "Message 2" });
// Activity tests.
ts.TraceEvent(TraceEventType.Start, 9, "Will not appear until the switch is changed.");
ts.Switch.Level = SourceLevels.ActivityTracing | SourceLevels.Critical;
ts.TraceEvent(TraceEventType.Suspend, 10, "Switch includes ActivityTracing, this should appear");
ts.TraceEvent(TraceEventType.Critical, 11, "Switch includes Critical, this should appear");
ts.Flush();
ts.Close();
Console.WriteLine("Press any key to exit.");
Console.Read();
}
catch (Exception e)
{
// Catch any unexpected exception.
Console.WriteLine("Unexpected exception: " + e.ToString());
Console.Read();
}
}
public static void DisplayProperties(TraceSource ts)
{
Console.WriteLine("TraceSource name = " + ts.Name);
Console.WriteLine("TraceSource switch level = " + ts.Switch.Level);
Console.WriteLine("TraceSource switch = " + ts.Switch.DisplayName);
SwitchAttribute[] switches = SwitchAttribute.GetAll(typeof(TraceTest).Assembly);
for (int i = 0; i < switches.Length; i++)
{
Console.WriteLine("Switch name = " + switches[i].SwitchName);
Console.WriteLine("Switch type = " + switches[i].SwitchType);
}
#if(ConfigFile)
// Get the custom attributes for the TraceSource.
Console.WriteLine("Number of custom trace source attributes = "
+ ts.Attributes.Count);
foreach (DictionaryEntry de in ts.Attributes)
Console.WriteLine("Custom trace source attribute = "
+ de.Key + " " + de.Value);
// Get the custom attributes for the trace source switch.
foreach (DictionaryEntry de in ts.Switch.Attributes)
Console.WriteLine("Custom switch attribute = "
+ de.Key + " " + de.Value);
#endif
Console.WriteLine("Number of listeners = " + ts.Listeners.Count);
foreach (TraceListener traceListener in ts.Listeners)
{
Console.Write("TraceListener: " + traceListener.Name + "\t");
// The following output can be used to update the configuration file.
Console.WriteLine("AssemblyQualifiedName = " +
(traceListener.GetType().AssemblyQualifiedName));
}
}
}
}
' The following configuration file can be used with this sample.
' When using a configuration file #define ConfigFile.
' <source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
' <add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
' <remove name ="Default" />
' <!-- You can set the level at which tracing is to occur -->
' <add name="SourceSwitch" value="Warning" />
' <!-- You can turn tracing off -->
' <!--add name="SourceSwitch" value="Off" -->
' <trace autoflush="true" indentsize="4"></trace>
#Const TRACE = True
'#Const ConfigFile = True
Imports System.Collections
Imports System.Diagnostics
Imports System.Reflection
Imports System.IO
Imports System.Security.Permissions
Class TraceTest
' Initialize the trace source.
Private Shared ts As New TraceSource("TraceTest")
<SwitchAttribute("SourceSwitch", GetType(SourceSwitch))> _
Shared Sub Main()
Try
' Initialize trace switches.
#If (ConfigFile = False) Then
Dim sourceSwitch As New SourceSwitch("SourceSwitch", "Verbose")
ts.Switch = sourceSwitch
Dim idxConsole As New Integer()
idxConsole = ts.Listeners.Add(New System.Diagnostics.ConsoleTraceListener())
ts.Listeners(idxConsole).Name = "console"
#End If
DisplayProperties(ts)
ts.Listeners("console").TraceOutputOptions = ts.Listeners("console").TraceOutputOptions Or TraceOptions.Callstack
ts.TraceEvent(TraceEventType.Warning, 1)
ts.Listeners("console").TraceOutputOptions = TraceOptions.DateTime
' Issue file not found message as a warning.
ts.TraceEvent(TraceEventType.Warning, 2, "File Test not found")
' Issue file not found message as a verbose event using a formatted string.
ts.TraceEvent(TraceEventType.Verbose, 3, "File {0} not found.", "test")
' Issue file not found message as information.
ts.TraceInformation("File {0} not found.", "test")
ts.Listeners("console").TraceOutputOptions = ts.Listeners("console").TraceOutputOptions Or TraceOptions.LogicalOperationStack
' Issue file not found message as an error event.
ts.TraceEvent(TraceEventType.Error, 4, "File {0} not found.", "test")
' Test the filter on the ConsoleTraceListener.
ts.Listeners("console").Filter = New SourceFilter("No match")
ts.TraceData(TraceEventType.Error, 5, "SourceFilter should reject this message for the console trace listener.")
ts.Listeners("console").Filter = New SourceFilter("TraceTest")
ts.TraceData(TraceEventType.Error, 6, "SourceFilter should let this message through on the console trace listener.")
ts.Listeners("console").Filter = Nothing
' Use the TraceData method.
ts.TraceData(TraceEventType.Warning, 7, New Object())
ts.TraceData(TraceEventType.Warning, 8, New Object() {"Message 1", "Message 2"})
' Activity tests.
ts.TraceEvent(TraceEventType.Start, 9, "Will not appear until the switch is changed.")
ts.Switch.Level = SourceLevels.ActivityTracing Or SourceLevels.Critical
ts.TraceEvent(TraceEventType.Suspend, 10, "Switch includes ActivityTracing, this should appear")
ts.TraceEvent(TraceEventType.Critical, 11, "Switch includes Critical, this should appear")
ts.Flush()
ts.Close()
Console.WriteLine("Press any key to exit.")
Console.Read()
Catch e As Exception
' Catch any unexpected exception.
Console.WriteLine("Unexpected exception: " + e.ToString())
Console.Read()
End Try
End Sub
Public Shared Sub DisplayProperties(ByVal ts As TraceSource)
Console.WriteLine("TraceSource name = " + ts.Name)
Console.WriteLine("TraceSource switch level = " + ts.Switch.Level.ToString())
Console.WriteLine("TraceSource switch = " + ts.Switch.DisplayName.ToString())
Dim switches As SwitchAttribute() = SwitchAttribute.GetAll(GetType(TraceTest).Assembly)
Dim i As Integer
For i = 0 To switches.Length - 1
Console.WriteLine("Switch name = " + switches(i).SwitchName.ToString())
Console.WriteLine("Switch type = " + switches(i).SwitchType.ToString())
Next i
#If (ConfigFile) Then
' Get the custom attributes for the TraceSource.
Console.WriteLine("Number of custom trace source attributes = " + ts.Attributes.Count)
Dim de As DictionaryEntry
For Each de In ts.Attributes
Console.WriteLine("Custom trace source attribute = " + de.Key + " " + de.Value)
Next de
' Get the custom attributes for the trace source switch.
For Each de In ts.Switch.Attributes
Console.WriteLine("Custom switch attribute = " + de.Key + " " + de.Value)
Next de
#End If
Console.WriteLine("Number of listeners = " + ts.Listeners.Count.ToString())
Dim traceListener As TraceListener
For Each traceListener In ts.Listeners
Console.Write("TraceListener: " + traceListener.Name + vbTab)
' The following output can be used to update the configuration file.
Console.WriteLine("AssemblyQualifiedName = " + traceListener.GetType().AssemblyQualifiedName)
Next traceListener
End Sub
End Class
Açıklamalar
TraceSource sınıfı, uygulamalar tarafından uygulamayla ilişkilendirilebilen izlemeler üretmek için kullanılır. TraceSource olayları kolayca izlemenize, verileri izlemenize ve bilgi izlemeleri göndermenize olanak sağlayan izleme yöntemleri sağlar.
.NET Framework uygulamalarında, TraceSource izleme çıkışı yapılandırma dosyası ayarları tarafından denetlenebilir. Yapılandırma dosyası, uygulamanın yürütülebilir dosyasının bulunduğu klasörde bulunur ve .config uzantısı eklenmiş uygulamanın adına sahiptir. Örneğin, TraceSourceSample.exe yapılandırma dosyasının adı TraceSourceSample.exe.config. Yapılandırma dosyası, izleme bilgilerinin nereye gönderileceğini ve hangi etkinlik düzeylerinin izleneceğini belirtmek için kullanılabilir. Aşağıdaki örnekte örnek bir .NET Framework uygulama yapılandırma dosyasının içeriği gösterilmektedir.
<configuration>
<system.diagnostics>
<sources>
<source name="TraceTest" switchName="SourceSwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<add name="console" />
<remove name ="Default" />
</listeners>
</source>
</sources>
<switches>
<!-- You can set the level at which tracing is to occur -->
<add name="SourceSwitch" value="Warning" />
<!-- You can turn tracing off -->
<!--add name="SourceSwitch" value="Off" -->
</switches>
<sharedListeners>
<add name="console"
type="System.Diagnostics.ConsoleTraceListener"
initializeData="false"/>
</sharedListeners>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="console" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
TraceSource sınıfı, genellikle uygulamanın adı olan bir kaynağın adıyla tanımlanır. Belirli bir bileşenden gelen izleme iletileri belirli bir izleme kaynağı tarafından başlatılabilir ve bu bileşenden gelen tüm iletilerin kolayca tanımlanmasını sağlar.
TraceSource izleme yöntemlerini tanımlar ancak izleme verilerini oluşturmak ve depolamak için belirli bir mekanizma sağlamaz. İzleme verileri, izleme kaynakları tarafından yüklenebilen eklentiler olan izleme dinleyicileri tarafından oluşturulur.
Not
Sonlandırma sırasında izleme yöntemlerini çağırmamalısınız. Bunun yapılması, bir ObjectDisposedException atılmasıyla sonuçlanabilir.
TraceSource.Listeners özelliğinde depolanan koleksiyona TraceListener örnekleri ekleyerek veya kaldırarak izleme çıktısının hedefini özelleştirebilirsiniz. Varsayılan olarak, izleme çıkışı DefaultTraceListener sınıfının bir örneği kullanılarak oluşturulur.
Yukarıdaki .NET Framework uygulama yapılandırma dosyası örneği, DefaultTraceListener kaldırmayı ve izleme kaynağının izleme çıkışını üretmek için bir ConsoleTraceListener eklemeyi gösterir. Daha fazla bilgi için bkz. <dinleyici> ve <sharedListeners>.
Not
Listeners koleksiyonuna izleme dinleyicisi eklemek, izleme dinleyicisi tarafından kullanılan bir kaynak kullanılamıyorsa izleme sırasında bir özel durum oluşturmasına neden olabilir. Oluşan koşullar ve özel durum, izleme dinleyicisine bağlıdır ve bu konuda numaralandırılamaz. İzleme dinleyicilerinden gelen özel durumları algılamak ve işlemek için try
/catch
bloklarda TraceSource yöntemlerine çağrılar yerleştirmek yararlı olabilir.
SourceSwitch sınıfı, izleme çıkışını dinamik olarak denetlemek için araçlar sağlar. .NET Framework uygulamaları için, yukarıdaki yapılandırma dosyası örneği izleme kaynağından izlemeyi nasıl kapatabileceğinizi ve izlemenin hangi düzeyde gerçekleştiğini nasıl denetleyebileceğinizi gösterir. Uygulamanızı yeniden derlemeden kaynak anahtarın değerini değiştirebilirsiniz. Bir anahtarı ayarlamak için yapılandırma dosyasını kullanma hakkında bilgi için bkz. Switch ve Nasıl yapılır: İzleme Anahtarları Oluşturma, Başlatma ve Yapılandırma.
Not
Bir uygulama yürütülürken yapılandırma dosyasını değiştirirseniz, yeni ayarların etkili olması için uygulamanın durdurulması ve yeniden başlatılması veya Refresh yönteminin çağrılması gerekir.
TraceEventType numaralandırması, izleme iletisinin olay türünü tanımlamak için kullanılır. İzleme filtreleri, izleme dinleyicisinin izleme iletisini üretmesi gerekip gerekmediğini belirlemek için TraceEventType kullanır.
İzleme dinleyicileri isteğe bağlı olarak izleme filtresi aracılığıyla ek bir filtreleme katmanına sahip olabilir. İzleme dinleyicisinin ilişkili bir filtresi varsa dinleyici, izleme bilgilerinin üretilip üretilmeyeceğini belirlemek için bu filtrede ShouldTrace yöntemini çağırır.
İzleme dinleyicileri, izleme çıktısını biçimlendirmek için , IndentSizeve AutoFlushIndentTrace sınıfı özelliklerinin değerlerini kullanır. .NET Framework uygulamalarında, Indent, IndentSizeve AutoFlush özelliklerini ayarlamak için yapılandırma dosyası özniteliklerini kullanabilirsiniz. Aşağıdaki örnek, AutoFlush özelliğini false
ve IndentSize özelliğini 3 olarak ayarlar.
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="3" />
</system.diagnostics>
</configuration>
Oluşturucular
TraceSource(String, SourceLevels) |
kaynak için belirtilen adı ve izlemenin gerçekleştirildiği varsayılan kaynak düzeyini kullanarak TraceSource sınıfının yeni bir örneğini başlatır. |
TraceSource(String) |
Kaynak için belirtilen adı kullanarak TraceSource sınıfının yeni bir örneğini başlatır. |
Özellikler
Attributes |
Uygulama yapılandırma dosyasında tanımlanan özel anahtar özniteliklerini alır. |
DefaultLevel |
Oluşturucuda atanan varsayılan düzeyi alır. |
Listeners |
İzleme kaynağı için izleme dinleyicileri koleksiyonunu alır. |
Name |
İzleme kaynağının adını alır. |
Switch |
Kaynak anahtar değerini alır veya ayarlar. |
Yöntemler
Close() |
İzleme dinleyicisi koleksiyonundaki tüm izleme dinleyicilerini kapatır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Flush() |
İzleme dinleyicisi koleksiyonundaki tüm izleme dinleyicilerini temizler. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetSupportedAttributes() |
İzleme kaynağı tarafından desteklenen özel öznitelikleri alır. |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
TraceData(TraceEventType, Int32, Object) |
Belirtilen olay türünü, olay tanımlayıcısını ve izleme verilerini kullanarak izleme verilerini Listeners koleksiyonundaki izleme dinleyicilerine yazar. |
TraceData(TraceEventType, Int32, Object[]) |
Belirtilen olay türünü, olay tanımlayıcısını ve izleme veri dizisini kullanarak izleme verilerini Listeners koleksiyonundaki izleme dinleyicilerine yazar. |
TraceEvent(TraceEventType, Int32, String, Object[]) |
Belirtilen olay türünü, olay tanımlayıcısını ve bağımsız değişken dizisini ve biçimini kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bir izleme olayı yazar. |
TraceEvent(TraceEventType, Int32, String) |
Belirtilen olay türünü, olay tanımlayıcısını ve iletiyi kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bir izleme olayı iletisi yazar. |
TraceEvent(TraceEventType, Int32) |
Belirtilen olay türünü ve olay tanımlayıcısını kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bir izleme olayı iletisi yazar. |
TraceInformation(String, Object[]) |
Belirtilen nesne dizisini ve biçimlendirme bilgilerini kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bilgilendirici bir ileti yazar. |
TraceInformation(String) |
Belirtilen iletiyi kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bilgilendirici bir ileti yazar. |
TraceTransfer(Int32, String, Guid) |
Belirtilen sayısal tanımlayıcıyı, iletiyi ve ilgili etkinlik tanımlayıcısını kullanarak Listeners koleksiyonundaki izleme dinleyicilerine bir izleme aktarım iletisi yazar. |
Ekinlikler
Initializing |
bir TraceSource başlatılması gerektiğinde gerçekleşir. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür iş parçacığı güvenlidir.
Ayrıca bkz.
- İzleme ve Hata Ayıklama Ayarları Şeması