TraceSwitch Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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:DEBUGflaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till#define DEBUGden överst i filen. I Visual Basic lägger du till flaggan/d:DEBUG=Truepå kommandoraden för kompilatorn.Om du vill aktivera spårning i C# lägger du till
/d:TRACEflaggan på kommandoraden för kompilatorn när du kompilerar koden eller lägger till#define TRACEden överst i filen. I Visual Basic lägger du till flaggan/d:TRACE=Truepå 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) |