Aracılığıyla paylaş


TraceSource Sınıf

Tanım

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ı