TraceSwitch Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje víceúrovňový přepínač pro řízení trasování a ladicích výstupů bez nutnosti znovu kompilovat kód.
public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
inherit Switch
Public Class TraceSwitch
Inherits Switch
- Dědičnost
Příklady
Následující příklad kódu vytvoří nový TraceSwitch a pomocí přepínače určí, zda se mají vytisknout chybové zprávy. Přepínač se vytvoří na úrovni třídy.
MyMethod zapíše první chybovou Level zprávu, pokud je vlastnost nastavena TraceLevel.Error nebo vyšší. Však nezapisuje druhou chybovou zprávu, MyMethod pokud Level je menší než 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
Poznámky
K filtrování zpráv na základě jejich důležitosti můžete použít přepínač trasování. Třída TraceSwitch poskytuje vlastnosti TraceError, TraceWarning, TraceInfoa TraceVerbose pro otestování úrovně přepínače. Vlastnost Level získá nebo nastaví TraceLevelpřepínače .
V kódu můžete vytvořit TraceSwitch a nastavit úroveň přímo pro instrumentaci konkrétní části kódu.
V aplikacích .NET Framework můžete také nastavit úroveň TraceSwitch prostřednictvím konfiguračního souboru aplikace a pak použít nakonfigurovanou úroveň TraceSwitch ve vaší aplikaci. V konfiguračním souboru aplikace můžete přidat nebo odebrat přepínač, nastavit hodnotu přepínače nebo vymazat všechny přepínače, které aplikace dříve nastavil. Konfigurační soubor by měl být formátovaný jako v následujícím příkladu:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Tato část konfigurace definuje TraceSwitch s DisplayName nastaveným na mySwitcha Level nastavenou na hodnotu 1, která odpovídá hodnotě výčtu TraceLevel.Error.
Note
Můžete také použít text k určení hodnoty přepínače. Například true pro BooleanSwitchnebo text představující hodnotu výčtu, například Error pro TraceSwitch.
<add name="mySwitch" value="Error" /> řádku odpovídá <add name="mySwitch" value="1" />.
V aplikaci můžete použít nakonfigurovanou úroveň přepínače tak, že vytvoříte TraceSwitch se stejným názvem, jak je znázorněno v následujícím příkladu:
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
V aplikacích .NET Core a .NET 5+ se Level nového přepínače standardně TraceLevel.Off.
V aplikacích .NET Framework se vlastnost switch Level ve výchozím nastavení nastaví na hodnotu zadanou v konfiguračním souboru. Pokud konstruktor TraceSwitch nemůže v konfiguračním souboru najít počáteční nastavení přepínače, Level nového přepínače se ve výchozím nastavení TraceLevel.Off.
Pokud chcete použít přepínač, musíte povolit trasování nebo ladění. Následující syntaxe je specifická pro kompilátor. Pokud používáte jiné kompilátory než C# nebo Visual Basic, projděte si dokumentaci pro váš kompilátor.
Pokud chcete povolit ladění v jazyce C#, přidejte
/d:DEBUGpříznak do příkazového řádku kompilátoru, když zkompilujete kód, nebo přidejte#define DEBUGna začátek souboru. V jazyce Visual Basic přidejte/d:DEBUG=Truepříznak do příkazového řádku kompilátoru.Pokud chcete povolit trasování v jazyce C#, přidejte
/d:TRACEpříznak do příkazového řádku kompilátoru při kompilaci kódu nebo přidejte#define TRACEna začátek souboru. V jazyce Visual Basic přidejte/d:TRACE=Truepříznak do příkazového řádku kompilátoru.
Note
Tyto přepínače kompilátoru ladění a trasování nejsou vyžadovány při použití TraceSwitch třídy v izolaci. Jsou vyžadovány pouze ve spojení s metodami TraceDebug , které jsou podmíněně zkompilovány.
Další informace o instrumentaci aplikace naleznete v tématu Debug a Trace. Další informace o konfiguraci a použití přepínačů trasování naleznete v tématu přepínače trasování.
Note
Pokud chcete zvýšit výkon, můžete členy ve třídě vytvářet TraceSwitchstatic .
Konstruktory
| Name | Description |
|---|---|
| TraceSwitch(String, String, String) |
Inicializuje novou instanci TraceSwitch třídy pomocí zadaného zobrazovaného názvu, popisu a výchozí hodnoty přepínače. |
| TraceSwitch(String, String) |
Inicializuje novou instanci TraceSwitch třídy pomocí zadaného zobrazovaného názvu a popisu. |
Vlastnosti
| Name | Description |
|---|---|
| Attributes |
Získá vlastní přepínače atributy definované v konfiguračním souboru aplikace. (Zděděno od Switch) |
| DefaultValue |
Získá výchozí hodnotu přiřazenou v konstruktoru. (Zděděno od Switch) |
| Description |
Získá popis přepínače. (Zděděno od Switch) |
| DisplayName |
Získá název použitý k identifikaci přepínače. (Zděděno od Switch) |
| Level |
Získá nebo nastaví úroveň trasování, která určuje zprávy, které přepínač umožňuje. |
| SwitchSetting |
Získá nebo nastaví aktuální nastavení pro tento přepínač. (Zděděno od Switch) |
| TraceError |
Získá hodnotu označující, zda přepínač umožňuje zprávy zpracování chyb. |
| TraceInfo |
Získá hodnotu označující, zda přepínač umožňuje informační zprávy. |
| TraceVerbose |
Získá hodnotu určující, zda přepínač umožňuje všechny zprávy. |
| TraceWarning |
Získá hodnotu označující, zda přepínač umožňuje upozorňující zprávy. |
| Value |
Získá nebo nastaví hodnotu přepínače. (Zděděno od Switch) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetSupportedAttributes() |
Získá vlastní atributy podporované přepínačem. (Zděděno od Switch) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnSwitchSettingChanged() |
Aktualizuje a opraví úroveň tohoto přepínače. |
| OnValueChanged() |
Nastaví vlastnost SwitchSetting na celočíselnou ekvivalent Value vlastnost. |
| Refresh() |
Aktualizuje konfigurační data trasování. (Zděděno od Switch) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |