Nyomkövetési kapcsolók

A nyomkövetési kapcsolók lehetővé teszik a nyomkövetési kimenet engedélyezését, letiltását és szűrését. Ezek olyan objektumok, amelyek a kódban léteznek, és külsőleg konfigurálhatók a .config fájlon keresztül. A .NET-keretrendszer háromféle nyomkövetési kapcsolót biztosít: az BooleanSwitch osztályt, az osztályt TraceSwitch és az osztálytSourceSwitch. Az BooleanSwitch osztály kapcsolókapcsolóként működik, amely különböző nyomkövetési utasítások engedélyezését vagy letiltását teszi lehetővé. SourceSwitch Az TraceSwitch és az osztályok lehetővé teszik egy nyomkövetési kapcsoló engedélyezését egy adott nyomkövetési szinthez, hogy az Trace adott szinthez és az alatta lévő összes szinthez megadott vagy TraceSource üzenetek megjelenjenek. Ha letiltja a kapcsolót, a nyomkövetési üzenetek nem jelennek meg. Ezek az osztályok az absztrakt (MustInherit) osztály Kapcsolóból származnak, ahogy minden felhasználó által kifejlesztett kapcsoló.

A nyomkövetési kapcsolók hasznosak lehetnek az információk szűréséhez. Előfordulhat például, hogy minden nyomkövetési üzenetet látni szeretne egy adatelérési modulban, de csak az alkalmazás többi részén megjelenő hibaüzeneteket. Ebben az esetben egy nyomkövetési kapcsolót használna az adatelérési modulhoz, egy kapcsolót pedig az alkalmazás többi részéhez. Ha a .config fájl használatával konfigurálja a kapcsolókat a megfelelő beállításokra, szabályozhatja, hogy milyen típusú nyomkövetési üzenetet kapott. További információ : Nyomkövetési kapcsolók létrehozása, inicializálása és konfigurálása.

Az üzembe helyezett alkalmazásokat általában letiltott kapcsolókkal hajtják végre, így a felhasználóknak nem kell sok irreleváns nyomkövetési üzenetet megfigyelni a képernyőn, vagy meg kell töltenie egy naplófájlt az alkalmazás futtatásakor. Ha probléma merül fel az alkalmazás végrehajtása során, leállíthatja az alkalmazást, engedélyezheti a kapcsolókat, és újraindíthatja az alkalmazást. Ekkor megjelennek a nyomkövetési üzenetek.

A kapcsoló használatához először létre kell hoznia egy kapcsolóobjektumot egy BooleanSwitch osztályból, egy TraceSwitch osztályból vagy egy fejlesztő által definiált kapcsolóosztályból. A fejlesztő által definiált kapcsolók létrehozásáról további információt a Switch .NET-keretrendszer referencia osztályában talál. Ezután beállít egy konfigurációs értéket, amely meghatározza, hogy mikor kell használni a kapcsolóobjektumot. Ezután tesztelheti a kapcsolóobjektum beállítását különböző nyomkövetési (vagy hibakeresési) nyomkövetési módszerekben.

Nyomkövetési szintek

A TraceSwitch használata esetén további szempontokat is figyelembe kell venni. A TraceSwitch-objektumok négy tulajdonsággal rendelkeznek, amelyek logikai értékeket adnak vissza, amelyek jelzik, hogy a kapcsoló legalább egy adott szintre van-e beállítva:

A szintek lehetővé teszik, hogy a kapott nyomkövetési információk mennyiségét csak a probléma megoldásához szükséges információkra korlátozza. A nyomkövetési kimenetben megadhatja a kívánt részletességi szintet a nyomkövetési kapcsolók megfelelő nyomkövetési szintre történő beállításával és konfigurálásával. Hibaüzeneteket, figyelmeztető üzeneteket, tájékoztató üzeneteket, részletes nyomkövetési üzeneteket vagy egyáltalán nem kaphat üzenetet.

Teljes mértékben Ön dönti el, hogy milyen típusú üzenetet társítson az egyes szintekhez. A nyomkövetési üzenetek tartalma általában attól függ, hogy mit társít az egyes szintekhez, de ön határozza meg a szintek közötti különbségeket. Előfordulhat például, hogy a 3. szinten (Információ) szeretne részletes leírást adni egy problémáról, de csak egy hibahivatkozási számot kell megadnia az 1. szinten (Hiba). Teljes mértékben Ön dönti el, hogy melyik séma működik a legjobban az alkalmazásban.

Ezek a tulajdonságok a TraceLevel enumerálás 1–4 értékének felelnek meg. Az alábbi táblázat a TraceLevel enumerálás szintjeinek és értékeinek listáját tartalmazza.

Számbavételi érték Egész számérték Megjelenített üzenet típusa (vagy adott kimeneti célhoz írva)
Kikapcsolva 0 Egyik sem
Hiba 0 Csak hibaüzenetek
Figyelmeztetés 2 Figyelmeztető üzenetek és hibaüzenetek
Információ 3 Tájékoztató üzenetek, figyelmeztető üzenetek és hibaüzenetek
Részletezés 4 Részletes üzenetek, tájékoztató üzenetek, figyelmeztető üzenetek és hibaüzenetek

A TraceSwitch tulajdonságai a kapcsoló maximális nyomkövetési szintjét jelzik. Vagyis a nyomkövetési információk a megadott szinthez és az összes alacsonyabb szinthez is meg lesznek írva. Ha például a TraceInfo igaz, akkor a TraceError és a TraceWarning is igaz, de a TraceVerbose valószínűleg hamis.

Ezek a tulajdonságok írásvédettek. A TraceSwitch objektum automatikusan beállítja őket a TraceLevel tulajdonság beállításakor. Példa:

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());  

Fejlesztő által definiált kapcsolók

A BooleanSwitch és a TraceSwitch megadása mellett saját kapcsolókat is definiálhat a Switch osztálytól való örökléssel, és az alaposztály metódusainak felülírásával, testre szabott metódusokkal. A fejlesztő által definiált kapcsolók létrehozásáról további információt a Switch .NET-keretrendszer referencia osztályában talál.

Lásd még