TraceSource TraceSource TraceSource TraceSource Class

Definizione

Fornisce un insieme di metodi e proprietà che consentono alle applicazioni di tracciare l'esecuzione del codice e associare i messaggi di traccia alla relativa origine.Provides a set of methods and properties that enable applications to trace the execution of code and associate trace messages with their source.

public ref class TraceSource
public class TraceSource
type TraceSource = class
Public Class TraceSource
Ereditarietà
TraceSourceTraceSourceTraceSourceTraceSource

Esempi

Esempio di codice seguente viene illustrato l'utilizzo del TraceSource classe per inoltrare le tracce di listener di traccia.The following code example shows the use of the TraceSource class to forward traces to listeners. Viene inoltre illustrato l'utilizzo di switch e filtro.The example also demonstrates switch and filter usage.

/////////////////////////////////////////////////////////////////////////////////
//
// 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 'Main

    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 'DisplayProperties
End Class 'TraceTest 

Commenti

La classe TraceSource viene utilizzata dalle applicazioni per produrre tracce associabili all'applicazione.The TraceSource class is used by applications to produce traces that can be associated with the application. TraceSource fornisce metodi di traccia che consentono di tracciare con facilità eventi e dati e di generare tracce informative.TraceSource provides tracing methods that allow you to easily trace events, trace data, and issue informational traces. Output di traccia da TraceSource possono essere controllate dalle impostazioni del file di configurazione.Trace output from TraceSource can be controlled by configuration file settings. Il file di configurazione si trova nella cartella con l'eseguibile dell'applicazione e ha il nome dell'applicazione con l'estensione del nome file con estensione config aggiunto.The configuration file is located in the folder with the application executable and has the name of the application with the .config file name extension added. Ad esempio, il nome del file di configurazione per TraceSourceSample.exe è TraceSourceSample.exe.config. Il file di configurazione è utilizzabile per determinare dove vengono inviato le informazioni di traccia e i livelli di attività da tracciare.For example, the name of the configuration file for TraceSourceSample.exe is TraceSourceSample.exe.config. The configuration file can be used to determine where the trace information is to be sent and what levels of activity are to be traced. Nell'esempio seguente viene illustrato il contenuto di un file di configurazione dell'applicazione di esempio.The following example shows the contents of a sample application configuration file.

<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>  

Il TraceSource classe è identificata dal nome di un'origine, in genere il nome dell'applicazione.The TraceSource class is identified by the name of a source, typically the name of the application. I messaggi di traccia provenienti da un particolare componente possono essere avviati da un'origine di traccia specifico agevolare l'identificazione di tutti i messaggi provenienti da tale componente.The trace messages coming from a particular component can be initiated by a particular trace source, allowing all messages coming from that component to be easily identified.

TraceSource Definisce i metodi di traccia, ma non fornisce alcun meccanismo specifico per la generazione e l'archiviazione dei dati di traccia.TraceSource defines tracing methods but does not actually provide any specific mechanism for generating and storing tracing data. I dati di traccia viene generati dai listener di traccia, ovvero plug-in che possono essere caricati da origini di traccia.The tracing data is produced by trace listeners, which are plug-ins that can be loaded by trace sources.

Nota

È necessario chiamare i metodi di traccia non durante la finalizzazione.You should not call the tracing methods during finalization. In questo modo può comportare un ObjectDisposedException generata.Doing so can result in an ObjectDisposedException being thrown.

È possibile personalizzare la destinazione dell'output di traccia aggiungendo o rimuovendo TraceListener le istanze o dalla raccolta di cui è archiviato nel TraceSource.Listeners proprietà.You can customize the tracing output's target by adding or removing TraceListener instances to or from the collection stored in the TraceSource.Listeners property. Per impostazione predefinita, l'output di traccia viene generato utilizzando un'istanza del DefaultTraceListener classe.By default, trace output is produced using an instance of the DefaultTraceListener class. L'esempio di file di configurazione precedente illustra come rimuovere il DefaultTraceListener e l'aggiunta di un ConsoleTraceListener per produrre l'output di traccia per l'origine di traccia.The preceding configuration file example demonstrates removing the DefaultTraceListener and adding a ConsoleTraceListener to produce the trace output for the trace source. Per altre informazioni, vedere <listener> e <sharedListeners>.For more information, see <listeners> and <sharedListeners>.

Nota

Aggiunta di un listener di traccia di Listeners collection può provocare un'eccezione generata durante la traccia, se una risorsa utilizzata dal listener di traccia non è disponibile.Adding a trace listener to the Listeners collection can cause an exception to be thrown while tracing, if a resource used by the trace listener is not available. Le condizioni e l'eccezione generata dipendono il listener di traccia e non possono essere enumerati in questo argomento.The conditions and the exception thrown depend on the trace listener and cannot be enumerated in this topic. Può essere utile effettuare chiamate per il TraceSource metodi try / catch blocchi per rilevare e gestire le eccezioni dal listener di traccia.It may be useful to place calls to the TraceSource methods in try/catch blocks to detect and handle any exceptions from trace listeners.

Il SourceSwitch classe fornisce i mezzi per controllare in modo dinamico output di tracciatura.The SourceSwitch class provides the means to dynamically control the tracing output. L'esempio di file di configurazione precedente viene illustrato come è possibile disattivare la traccia da un'origine di traccia e controllare il livello di traccia di quale si verifica.The preceding configuration file example shows how you can turn off tracing from a trace source and control the level at which tracing occurs. È possibile modificare il valore dell'opzione di origine senza ricompilare l'applicazione.You can modify the value of the source switch without recompiling your application. Per informazioni sull'utilizzo del file di configurazione per impostare un'opzione, vedere Switch e come: Creare, inizializzare e configurare opzioni di traccia.For information on using the configuration file to set a switch, see Switch and How to: Create, Initialize and Configure Trace Switches.

Nota

Se si modifica un file di configurazione durante l'esecuzione di un'applicazione, è necessario arrestare e riavviare l'applicazione o il Refresh metodo deve essere chiamato prima che le nuove impostazioni diventano effettive.If you modify a configuration file while an application is executing, the application must be stopped and restarted or the Refresh method must be called before the new settings take effect.

Il TraceEventType enumerazione viene utilizzata per definire il tipo di evento del messaggio di traccia.The TraceEventType enumeration is used to define the event type of the trace message. Usare filtri di traccia di TraceEventType per determinare se un listener di traccia deve produrre il messaggio di traccia.Trace filters use the TraceEventType to determine if a trace listener should produce the trace message.

I listener di traccia possono avere facoltativamente un ulteriore livello di applicazione di filtri tramite un filtro di traccia.The trace listeners can optionally have an additional layer of filtering through a trace filter. Se un listener di traccia è associato un filtro, il listener chiama il ShouldTrace metodo su tale filtro per determinare se visualizzare o meno per produrre informazioni di traccia.If a trace listener has an associated filter, the listener calls the ShouldTrace method on that filter to determine whether or not to produce the trace information.

I listener di traccia utilizzano di valori del Trace proprietà della classe Indent, IndentSize, e AutoFlush per formattare l'output di traccia.The trace listeners use the values of the Trace class properties Indent, IndentSize, and AutoFlush to format trace output. È possibile usare gli attributi di file di configurazione per impostare il Indent, IndentSize, e AutoFlush proprietà.You can use configuration file attributes to set the Indent, IndentSize, and AutoFlush properties. L'esempio seguente imposta la AutoFlush proprietà false e il IndentSize proprietà a 3.The following example sets the AutoFlush property to false and the IndentSize property to 3.

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

Costruttori

TraceSource(String) TraceSource(String) TraceSource(String) TraceSource(String)

Inizializza una nuova istanza della classe TraceSource utilizzando il nome specificato per l'origine.Initializes a new instance of the TraceSource class, using the specified name for the source.

TraceSource(String, SourceLevels) TraceSource(String, SourceLevels) TraceSource(String, SourceLevels) TraceSource(String, SourceLevels)

Inizializza una nuova istanza della classe TraceSource, utilizzando il nome specificato per l'origine e il livello di origine predefinito in corrispondenza del quale deve essere eseguita la tracciatura.Initializes a new instance of the TraceSource class, using the specified name for the source and the default source level at which tracing is to occur.

Proprietà

Attributes Attributes Attributes Attributes

Ottiene gli attributi di opzione personalizzati definiti nel file di configurazione dell'applicazione.Gets the custom switch attributes defined in the application configuration file.

Listeners Listeners Listeners Listeners

Ottiene l'insieme dei listener di traccia per l'origine di traccia.Gets the collection of trace listeners for the trace source.

Name Name Name Name

Ottiene il nome dell'origine di traccia.Gets the name of the trace source.

Switch Switch Switch Switch

Ottiene o imposta il valore dell'opzione relativa all'origine.Gets or sets the source switch value.

Metodi

Close() Close() Close() Close()

Chiude tutti i listener di traccia nell'insieme di listener di traccia.Closes all the trace listeners in the trace listener collection.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Flush() Flush() Flush() Flush()

Scarica tutti i listener di traccia nell'insieme di listener di traccia.Flushes all the trace listeners in the trace listener collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

Ottiene gli attributi personalizzati supportati dall'origine di traccia.Gets the custom attributes supported by the trace source.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)
TraceData(TraceEventType, Int32, Object) TraceData(TraceEventType, Int32, Object) TraceData(TraceEventType, Int32, Object) TraceData(TraceEventType, Int32, Object)

Scrive i dati di traccia nei listener di traccia dell'insieme Listeners utilizzando il tipo di evento, l'identificatore di evento e i dati di traccia specificati.Writes trace data to the trace listeners in the Listeners collection using the specified event type, event identifier, and trace data.

TraceData(TraceEventType, Int32, Object[]) TraceData(TraceEventType, Int32, Object[]) TraceData(TraceEventType, Int32, Object[]) TraceData(TraceEventType, Int32, Object[])

Scrive i dati di traccia nei listener di traccia dell'insieme Listeners utilizzando il tipo di evento, l'identificatore di evento e la matrice di dati di traccia specificati.Writes trace data to the trace listeners in the Listeners collection using the specified event type, event identifier, and trace data array.

TraceEvent(TraceEventType, Int32) TraceEvent(TraceEventType, Int32) TraceEvent(TraceEventType, Int32) TraceEvent(TraceEventType, Int32)

Scrive un messaggio di evento di traccia nei listener di traccia dell'insieme Listeners utilizzando il tipo di evento e l'identificatore di evento specificati.Writes a trace event message to the trace listeners in the Listeners collection using the specified event type and event identifier.

TraceEvent(TraceEventType, Int32, String) TraceEvent(TraceEventType, Int32, String) TraceEvent(TraceEventType, Int32, String) TraceEvent(TraceEventType, Int32, String)

Scrive un messaggio di evento di traccia nei listener di traccia dell'insieme Listeners utilizzando il tipo di evento, l'identificatore di evento e il messaggio specificati.Writes a trace event message to the trace listeners in the Listeners collection using the specified event type, event identifier, and message.

TraceEvent(TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventType, Int32, String, Object[])

Scrive un evento di traccia nei listener di traccia dell'insieme Listeners utilizzando il tipo di evento, l'identificatore di evento, la matrice di argomenti e il formato specificati.Writes a trace event to the trace listeners in the Listeners collection using the specified event type, event identifier, and argument array and format.

TraceInformation(String) TraceInformation(String) TraceInformation(String) TraceInformation(String)

Scrive un messaggio informativo nei listener di traccia dell'insieme Listeners utilizzando il messaggio specificato.Writes an informational message to the trace listeners in the Listeners collection using the specified message.

TraceInformation(String, Object[]) TraceInformation(String, Object[]) TraceInformation(String, Object[]) TraceInformation(String, Object[])

Scrive un messaggio informativo nei listener di traccia dell'insieme Listeners utilizzando la matrice di oggetti e le informazioni di formattazione specificate.Writes an informational message to the trace listeners in the Listeners collection using the specified object array and formatting information.

TraceTransfer(Int32, String, Guid) TraceTransfer(Int32, String, Guid) TraceTransfer(Int32, String, Guid) TraceTransfer(Int32, String, Guid)

Scrive un messaggio di traccia di trasferimento nei listener di traccia dell'insieme Listeners utilizzando l'identificatore numerico, il messaggio e l'identificatore di attività correlata specificati.Writes a trace transfer message to the trace listeners in the Listeners collection using the specified numeric identifier, message, and related activity identifier.

Si applica a

Thread safety

Questo tipo è thread-safe.This type is thread safe.

Vedi anche