TraceSwitch Klass

Definition

Tillhandahåller en växel på flera nivåer för att styra spårnings- och felsökningsutdata utan att kompilera om koden.

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
Arv
TraceSwitch

Exempel

I följande kodexempel skapas en ny TraceSwitch och växeln används för att avgöra om du vill skriva ut felmeddelanden. Växeln skapas på klassnivå. MyMethod skriver det första felmeddelandet om egenskapen Level är inställd på TraceLevel.Error eller högre. Skriver dock MyMethod inte det andra felmeddelandet om är Level mindre än TraceLevel.Verbose.

//Class-level declaration.
/* Create a TraceSwitch to use in the entire application.*/
static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");

static public void MyMethod()
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    if (mySwitch.TraceError)
        Console.WriteLine("My error message.");

    // Write the message if the TraceSwitch level is set to Verbose.
    if (mySwitch.TraceVerbose)
        Console.WriteLine("My second error message.");
}

public static void Main(string[] args)
{
    // Run the method that prints error messages based on the switch level.
    MyMethod();
}
' Class-level declaration.
' Create a TraceSwitch to use in the entire application. 
Private Shared mySwitch As New TraceSwitch("General", "Entire Application")    

Public Shared Sub MyMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    If mySwitch.TraceError Then
        Console.WriteLine("My error message.")
    End If 
    ' Write the message if the TraceSwitch level is set to Verbose.
    If mySwitch.TraceVerbose Then
        Console.WriteLine("My second error message.")
    End If
End Sub

Public Shared Sub Main()
    ' Run the method that prints error messages based on the switch level.
    MyMethod()
End Sub

Kommentarer

Du kan använda en spårningsväxel för att filtrera bort meddelanden baserat på deras betydelse. Klassen TraceSwitch innehåller TraceErroregenskaperna , TraceWarning, TraceInfooch TraceVerbose för att testa växelns nivå. Egenskapen Level hämtar eller anger växelns TraceLevel.

Du kan skapa en TraceSwitch i koden och ange nivån direkt för att instrumentera ett visst kodavsnitt.

Endast i .NET Framework-appar kan du också ange nivån för en TraceSwitch via programkonfigurationsfilen och sedan använda den konfigurerade TraceSwitch nivån i ditt program. I programkonfigurationsfilen kan du lägga till eller ta bort en växel, ange värdet för en växel eller rensa alla växlar som tidigare angetts av programmet. Konfigurationsfilen ska formateras som i följande exempel:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="1" />
    </switches>
  </system.diagnostics>
</configuration>

Det här konfigurationsavsnittet definierar ett TraceSwitch med DisplayName värdet mySwitch, och Level värdet 1, vilket motsvarar uppräkningsvärdet TraceLevel.Error.

Note

Du kan också använda text för att ange värdet för en växel. Till exempel true för en BooleanSwitch, eller texten som representerar ett uppräkningsvärde, till exempel Error för en TraceSwitch. Raden <add name="mySwitch" value="Error" /> motsvarar <add name="mySwitch" value="1" />.

I ditt program kan du använda den konfigurerade växelnivån genom att skapa en TraceSwitch med samma namn, som du ser i följande exempel:

private static TraceSwitch appSwitch = new TraceSwitch("mySwitch",
    "Switch in config file");

public static void Main(string[] args)
{
    //...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString());
    if (appSwitch.TraceError)
    {
        //...
    }
}
Private Shared appSwitch As new TraceSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main(args As String())
    '...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString())
    If appSwitch.TraceError = True  Then
        '...
    End If
End Sub

I .NET Core- och .NET 5+-appar är Level för den nya växeln som standard TraceLevel.Off.

I .NET Framework-appar är egenskapen switch Level standardvärdet för det värde som anges i konfigurationsfilen. TraceSwitch Om konstruktorn inte kan hitta inledande växelinställningar i konfigurationsfilen, Level för den nya växeln är standardvärdet TraceLevel.Off.

Du måste aktivera spårning eller felsökning för att kunna använda en växel. Följande syntax är kompilatorspecifik. Om du använder andra kompilatorer än C# eller Visual Basic läser du dokumentationen för kompilatorn.

  • Om du vill aktivera felsökning i C# lägger du till /d:DEBUG flaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till #define DEBUG den överst i filen. I Visual Basic lägger du till flaggan /d:DEBUG=True på kommandoraden för kompilatorn.

  • Om du vill aktivera spårning i C# lägger du till /d:TRACE flaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till #define TRACE den överst i filen. I Visual Basic lägger du till flaggan /d:TRACE=True på kommandoraden för kompilatorn.

Note

Dessa felsöknings- och spårningskompilatorväxlar krävs inte när klassen används TraceSwitch isolerat. De krävs endast tillsammans med Trace eller Debug metoder som är villkorligt kompilerade.

Mer information om hur du instrumenterar ditt program finns i Debug och Trace. Mer information om hur du konfigurerar och använder spårningsväxlar finns i Spårningsväxlar.

Note

För att förbättra prestandan kan du göra TraceSwitch medlemmar static i din klass.

Konstruktorer

Name Description
TraceSwitch(String, String, String)

Initierar en ny instans av TraceSwitch klassen med det angivna visningsnamnet, beskrivningen och standardvärdet för växeln.

TraceSwitch(String, String)

Initierar en ny instans av TraceSwitch klassen med det angivna visningsnamnet och beskrivningen.

Egenskaper

Name Description
Attributes

Hämtar de anpassade växelattribut som definierats i programkonfigurationsfilen.

(Ärvd från Switch)
Description

Hämtar en beskrivning av växeln.

(Ärvd från Switch)
DisplayName

Hämtar ett namn som används för att identifiera växeln.

(Ärvd från Switch)
Level

Hämtar eller anger den spårningsnivå som avgör vilka meddelanden som växeln tillåter.

SwitchSetting

Hämtar eller anger den aktuella inställningen för den här växeln.

(Ärvd från Switch)
TraceError

Hämtar ett värde som anger om växeln tillåter felmeddelanden.

TraceInfo

Hämtar ett värde som anger om växeln tillåter informationsmeddelanden.

TraceVerbose

Hämtar ett värde som anger om växeln tillåter alla meddelanden.

TraceWarning

Hämtar ett värde som anger om växeln tillåter varningsmeddelanden.

Value

Hämtar eller anger värdet för växeln.

(Ärvd från Switch)

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetSupportedAttributes()

Hämtar de anpassade attribut som stöds av växeln.

(Ärvd från Switch)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnSwitchSettingChanged()

Uppdaterar och korrigerar nivån för den här växeln.

OnValueChanged()

SwitchSetting Anger egenskapen till heltalsekvivalenten för Value egenskapen.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även