Aracılığıyla paylaş


TraceSource Sınıf

Tanım

Uygulamaların kodun yürütülmesini izlemesini ve izleme iletilerini kaynaklarıyla ilişkilendirmesini sağlayan 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 sınıfının kullanımını TraceSource 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 oluşturmak için kullanılır. TraceSource olayları kolayca izlemenize, verileri izlemenize ve bilgilendirme izlemeleri vermenize olanak sağlayan izleme yöntemleri sağlar.

.NET Framework uygulamalarında, izleme TraceSource çıktısı 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ının eklendiği uygulamanın adını içerir. Ö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 .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ılmayla sonuçlanabilir.

özelliğinde depolanan koleksiyona örnekler ekleyerek veya koleksiyondan örnekleri kaldırarak TraceListener izleme çıkışının hedefini TraceSource.Listeners özelleştirebilirsiniz. Varsayılan olarak, izleme çıkışı sınıfının bir örneği DefaultTraceListener kullanılarak oluşturulur.

Önceki .NET Framework uygulama yapılandırma dosyası örneği, izleme kaynağı için izleme çıktısını DefaultTraceListener oluşturmak üzere öğesinin kaldırılmasını ve eklenmesini ConsoleTraceListener gösterir. Daha fazla bilgi için bkz <. dinleyiciler> ve <sharedListeners>.

Not

İzleme dinleyicisi tarafından kullanılan bir kaynak kullanılamıyorsa, koleksiyona Listeners izleme dinleyicisi eklemek, 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 TraceSource ve işlemek için bloklardaki try/catch yöntemlere çağrı yapmak yararlı olabilir.

sınıfı, SourceSwitch izleme çıkışını dinamik olarak denetlemek için araçlar sağlar. .NET Framework uygulamalar için, yukarıdaki yapılandırma dosyası örneğinde izleme kaynağından izlemeyi nasıl kapatabileceğiniz ve izlemenin gerçekleştiği düzeyi nasıl denetleyebileceğiniz gösterilmektedir. Uygulamanızı yeniden derlemeden kaynak anahtarın değerini değiştirebilirsiniz. Yapılandırma dosyasını kullanarak anahtar ayarlama hakkında bilgi için bkzSwitch. ve Nasıl yapılır: İçerik Oluşturucu, İzleme Anahtarlarını 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öntemin çağrılması gerekir.

Numaralandırma TraceEventType , izleme iletisinin olay türünü tanımlamak için kullanılır. İzleme filtreleri, izleme dinleyicisinin TraceEventType izleme iletisini üretmesi gerekip gerekmediğini belirlemek için öğesini 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 bilgilerini oluşturup oluşturmayacağını belirlemek için bu filtrede yöntemini çağırır ShouldTrace .

İzleme dinleyicileri, izleme çıkışını Trace biçimlendirmek için , IndentSizeve AutoFlush sınıf özelliklerinin Indentdeğerlerini kullanır. .NET Framework uygulamalarında, yapılandırma dosyası özniteliklerini kullanarak , IndentSizeve AutoFlush özelliklerini ayarlayabilirsinizIndent. Aşağıdaki örnek özelliğini olarak, özelliğini false ise IndentSize 3 olarak ayarlarAutoFlush.

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="3" />  
  </system.diagnostics>  
</configuration>  

Oluşturucular

TraceSource(String)

Kaynak için belirtilen adı kullanarak sınıfının yeni bir örneğini TraceSource başlatır.

TraceSource(String, SourceLevels)

Kaynak için belirtilen adı ve izlemenin TraceSource gerçekleştirildiği varsayılan kaynak düzeyini kullanarak 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()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi 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 koleksiyondaki Listeners izleme dinleyicilerine yazar.

TraceData(TraceEventType, Int32, Object[])

Belirtilen olay türünü, olay tanımlayıcısını ve izleme veri dizisini Listeners kullanarak izleme verilerini koleksiyondaki izleme dinleyicilerine yazar.

TraceEvent(TraceEventType, Int32)

Belirtilen olay türünü ve olay tanımlayıcısını kullanarak koleksiyondaki Listeners izleme dinleyicilerine bir izleme olayı iletisi yazar.

TraceEvent(TraceEventType, Int32, String)

Belirtilen olay türünü, olay tanımlayıcısını ve iletiyi kullanarak koleksiyondaki Listeners izleme dinleyicilerine bir izleme olayı iletisi 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 koleksiyondaki Listeners izleme dinleyicilerine bir izleme olayı yazar.

TraceInformation(String)

Belirtilen iletiyi kullanarak koleksiyondaki Listeners izleme dinleyicilerine bilgilendirici bir ileti yazar.

TraceInformation(String, Object[])

Belirtilen nesne dizisini ve biçimlendirme bilgilerini kullanarak koleksiyondaki Listeners 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 koleksiyondaki Listeners izleme dinleyicilerine bir izleme aktarım iletisi yazar.

Ekinlikler

Initializing

Başlatılması TraceSource gerektiğinde gerçekleşir.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu güvenli iş parçacığı türüdür.

Ayrıca bkz.