Přepínače trasování

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 souboru .config. 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 přepínač, buď povolení nebo zakázání různých příkazů trasování. SourceSwitch Třídy TraceSwitch umožňují povolit přepínač trasování pro určitou úroveň trasování, aby se zobrazily TraceTraceSource zprávy zadané pro danou ú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 pro modul pro přístup k datům použili jeden přepínač trasování a druhý 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 Switch v tématu třídy v .NET Framework reference. 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 zobrazit chybové zprávy, zprávy s upozorněním, informační zprávy, podrobné trasovací 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 zobrazené zprávy (nebo zapsaný do zadaného výstupního cíle)
Vypnout 0 Nic
Chyba 0 Pouze chybové zprávy
Upozorňující 2 Upozornění a chybové zprávy
Informace 3 Informační zprávy, zprávy s upozorněním a chybové zprávy
Podrobnosti 4 Podrobné zprávy, informační zprávy, zprávy s upozorněním a chybové zprávy

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

Tyto vlastnosti jsou jen pro čtení. TraceSwitch objekt je automaticky nastaví při TraceLevel vlastnost je nastavena. Pří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 definované vývojářem

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 Switch v tématu třídy v .NET Framework reference.

Viz také