Sdílet prostřednictvím


Přepínače trasování

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Přepínače trasování umožňují povolit, zakázat a filtrovat výstup trasování. Jedná se o objekty, které existují v kódu a dají se externě konfigurovat prostřednictvím .config souboru. Existují tři typy přepínačů trasování poskytované v rozhraní .NET Framework: BooleanSwitch třída, TraceSwitch třída a SourceSwitch třída. Třída BooleanSwitch funguje jako kolébkový přepínač, který umožňuje nebo zakazuje různé příkazy trasování. Třídy TraceSwitch a SourceSwitch vám umožňují povolit přepínač trasování pro určitou úroveň trasování, aby se zobrazily zprávy Trace nebo TraceSource zadané pro tuto úroveň a všechny úrovně pod ní. Pokud přepínač zakážete, zprávy trasování se nezobrazí. Všechny tyto třídy jsou odvozeny z abstraktní (MustInherit) třídy Switch, stejně jako všechny uživatelem vyvinuté přepínače.

Přepínače trasování můžou být užitečné pro filtrování informací. Můžete například chtít zobrazit všechny trasovací zprávy v modulu pro přístup k datům, ale jenom chybové zprávy ve zbytku aplikace. V takovém případě byste použili jeden trasovací přepínač pro modul přístupu k datům a jeden přepínač pro zbytek aplikace. Pomocí souboru .config ke konfiguraci přepínačů na příslušná nastavení můžete určit, jaké typy zpráv trasování jste obdrželi. Další informace naleznete v tématu Postupy: Vytvoření, inicializace a konfigurace přepínačů trasování.

Nasazená aplikace se obvykle spouští se zakázanými přepínači, takže uživatelé nemusí sledovat velké množství irelevantních trasovacích zpráv, které se zobrazují na obrazovce, nebo vyplňovat soubor protokolu při spuštění aplikace. Pokud během provádění aplikace dojde k problému, můžete aplikaci zastavit, povolit přepínače a restartovat aplikaci. Pak se zobrazí zprávy trasování.

Chcete-li použít přepínač, je nutné nejprve vytvořit switch objekt z booleanSwitch třídy, TraceSwitch třídy nebo třídy přepínače definované vývojářem. Další informace o vytváření přepínačů definovaných vývojářem naleznete ve třídě Switch v referenční dokumentaci .NET Framework. Pak nastavíte hodnotu konfigurace, která určuje, kdy se má použít objekt switch. Pak otestujete nastavení objektu switch v různých metodách trasování (nebo ladění).

Úrovně trasování

Pokud používáte TraceSwitch, je potřeba vzít v úvahu další aspekty. Objekt TraceSwitch má čtyři vlastnosti, které vracejí logické hodnoty označující, zda je přepínač nastaven na alespoň určitou úroveň:

Úrovně umožňují omezit množství informací trasování, které obdržíte, pouze na tyto informace potřebné k vyřešení problému. Úroveň podrobností, kterou chcete mít ve výstupu trasování, určíte nastavením a konfigurací přepínačů trasování na odpovídající úroveň trasování. Můžete obdržet chybové zprávy, zprávy s upozorněním, informační zprávy, podrobné sledovací zprávy nebo vůbec žádnou zprávu.

Je zcela na vás, abyste se rozhodli, jaký druh zprávy se má přidružit ke každé úrovni. Obsah trasovacích zpráv obvykle závisí na tom, co přidružíte ke každé úrovni, ale určíte rozdíly mezi úrovněmi. Můžete chtít zadat podrobné popisy problému na úrovni 3 (informace), ale zadat pouze číslo odkazu na chybu na úrovni 1 (chyba). Je zcela na vás, abyste se rozhodli, jaké schéma funguje nejlépe ve vaší aplikaci.

Tyto vlastnosti odpovídají hodnotám 1 až 4 výčtu TraceLevel . Následující tabulka uvádí úrovně výčtu TraceLevel a jejich hodnot.

Výčtová hodnota Celočíselná hodnota Typ zobrazované zprávy (nebo zapisované do určeného výstupního cíle)
Vypnuto 0 Žádné
Chyba 1 Pouze chybové zprávy
Výstraha 2 Upozornění a chybové zprávy
Informace 3 Informační zprávy, zprávy s upozorněním a chybové zprávy
Zdlouhavý 4 Podrobné zprávy, informační zprávy, varovné zprávy a chybové zprávy

Vlastnosti TraceSwitch označují maximální úroveň trasování pro přepínač. To znamená, že informace o trasování se zapisuje pro zadanou úroveň i pro všechny nižší úrovně. Například, pokud je TraceInfotrue, pak jsou také TraceError a TraceWarningtrue, ale TraceVerbose může být false.

Tyto vlastnosti jsou jen pro čtení. TraceSwitch objekt je automaticky nastaví, když je vlastnost TraceLevel nastavena. Například:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());

Přepínače Developer-Defined

Kromě poskytování BooleanSwitch a TraceSwitch můžete definovat vlastní přepínače děděním z Switch třídy a přepsáním metod základní třídy vlastními metodami. Další informace o vytváření přepínačů definovaných vývojářem naleznete ve třídě Switch v referenční dokumentaci .NET Framework.

Viz také