Delen via


Schakelopties voor traceren

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

Met traceringsswitches kunt u uitvoer van tracering inschakelen, uitschakelen en filteren. Het zijn objecten die in uw code aanwezig zijn en extern kunnen worden geconfigureerd via het .config-bestand. Er zijn drie soorten traceringsswitches beschikbaar in .NET Framework: de BooleanSwitch klasse, de TraceSwitch klasse en de SourceSwitch klasse. De BooleanSwitch klasse fungeert als wisselknop, waarbij verschillende traceringsinstructies worden ingeschakeld of uitgeschakeld. Met de TraceSwitch en SourceSwitch klassen kunt u een traceringsswitch inschakelen voor een bepaald traceringsniveau, zodat de Trace of TraceSource berichten die voor dat niveau zijn opgegeven en alle niveaus eronder worden weergegeven. Als u de schakeloptie uitschakelt, worden de traceringsberichten niet weergegeven. Al deze klassen zijn afgeleid van de abstracte klasse Switch (MustInherit), net als alle door de gebruiker ontwikkelde switches.

Traceringsswitches kunnen handig zijn voor het filteren van informatie. U wilt bijvoorbeeld elk traceringsbericht in een data access-module zien, maar alleen foutberichten in de rest van de toepassing. In dat geval gebruikt u één traceringsswitch voor de data access-module en één switch voor de rest van de toepassing. Door het .config-bestand te gebruiken om de switches naar de juiste instellingen te configureren, kunt u bepalen welke typen traceringsberichten u hebt ontvangen. Zie Procedure: Traceringsswitches maken, initialiseren en configureren voor meer informatie.

Normaal gesproken wordt een geïmplementeerde toepassing uitgevoerd met de schakelopties uitgeschakeld, zodat gebruikers niet veel irrelevante traceringsberichten op een scherm hoeven te observeren of een logboekbestand invullen terwijl de toepassing wordt uitgevoerd. Als er een probleem optreedt tijdens het uitvoeren van de toepassing, kunt u de toepassing stoppen, de switches inschakelen en de toepassing opnieuw starten. Vervolgens worden de traceringsberichten weergegeven.

Als u een switch wilt gebruiken, moet u eerst een switchobject maken op basis van een BooleanSwitch-klasse, een TraceSwitch-klasse of een door ontwikkelaars gedefinieerde switchklasse. Zie de Switch klasse in de naslaginformatie over .NET Framework voor meer informatie over het maken van door ontwikkelaars gedefinieerde switches. Vervolgens stelt u een configuratiewaarde in die aangeeft wanneer het switchobject moet worden gebruikt. Vervolgens test u de instelling van het switchobject in verschillende traceringsmethoden (of Foutopsporing).

Traceringsniveaus

Wanneer u TraceSwitch gebruikt, zijn er aanvullende overwegingen. Een TraceSwitch-object heeft vier eigenschappen die Booleaanse waarden retourneren die aangeven of de switch is ingesteld op ten minste een bepaald niveau:

Met niveaus kunt u de hoeveelheid traceringsgegevens die u ontvangt beperken tot alleen die informatie die nodig is om een probleem op te lossen. U geeft het gewenste detailniveau op in de traceringsuitvoer door traceringsswitches in te stellen en te configureren op het juiste traceringsniveau. U kunt foutberichten, waarschuwingsberichten, informatieve berichten, uitgebreide traceringsberichten of helemaal geen bericht ontvangen.

Het is aan u om te bepalen welk type bericht aan elk niveau moet worden gekoppeld. Normaal gesproken is de inhoud van traceringsberichten afhankelijk van wat u aan elk niveau koppelt, maar u bepaalt de verschillen tussen niveaus. U kunt gedetailleerde beschrijvingen geven van een probleem op niveau 3 (Info), maar alleen een foutreferentienummer opgeven op niveau 1 (Fout). Het is volledig aan u om te bepalen welke regeling het beste werkt in uw toepassing.

Deze eigenschappen komen overeen met de waarden 1 tot en met 4 van de opsomming TraceLevel . De volgende tabel bevat de niveaus van de opsomming TraceLevel en de bijbehorende waarden.

Opgesomde waarde Integerwaarde Type bericht dat wordt weergegeven (of naar een opgegeven uitvoerdoel is geschreven)
Uit 0 Geen
Error 1 Alleen foutberichten
Waarschuwing 2 Waarschuwingsberichten en foutberichten
Info 3 Informatieve berichten, waarschuwingsberichten en foutberichten
Uitgebreid 4 Uitgebreide berichten, informatieve berichten, waarschuwingsberichten en foutberichten

De eigenschappen TraceSwitch geven het maximale traceerniveau voor de switch aan. Dat wil gezegd, traceringsinformatie wordt geschreven voor het opgegeven niveau en voor alle lagere niveaus. Als TraceInfo bijvoorbeeld waar is, zijn TraceError en TraceWarning ook waar, maar TraceVerbose kan goed onwaar zijn.

Deze eigenschappen zijn alleen-lezen. Het TraceSwitch-object stelt deze automatisch in wanneer de eigenschap TraceLevel is ingesteld. Voorbeeld:

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

Door ontwikkelaars gedefinieerde switches

Naast het leveren van BooleanSwitch en TraceSwitch kunt u uw eigen switches definiëren door over te nemen van de Switch-klasse en de basisklassemethoden te overschrijven met aangepaste methoden. Zie de Switch klasse in de naslaginformatie over .NET Framework voor meer informatie over het maken van door ontwikkelaars gedefinieerde switches.

Zie ook