Spårningsväxlar
Kommentar
Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.
Med spårningsväxlar kan du aktivera, inaktivera och filtrera spårningsutdata. De är objekt som finns i koden och som kan konfigureras externt via .config-filen. Det finns tre typer av spårningsväxlar i .NET Framework: BooleanSwitch klassen, TraceSwitch klassen och SourceSwitch klassen. Klassen BooleanSwitch fungerar som en växlingsväxel som antingen aktiverar eller inaktiverar en mängd olika spårningsuttryck. Med TraceSwitch klasserna och SourceSwitch kan du aktivera en spårningsväxel för en viss spårningsnivå så att de eller TraceSource meddelanden som anges för den Trace nivån och alla nivåer under den visas. Om du inaktiverar växeln visas inte spårningsmeddelandena. Alla dessa klasser härleds från den abstrakta klassen (MustInherit) switch, liksom alla användarutvecklade växlar.
Spårningsväxlar kan vara användbara för filtreringsinformation. Du kanske till exempel vill se varje spårningsmeddelande i en dataåtkomstmodul, men bara felmeddelanden i resten av programmet. I så fall använder du en spårningsväxel för dataåtkomstmodulen och en växel för resten av programmet. Genom att använda .config-filen för att konfigurera växlarna till lämpliga inställningar kan du styra vilka typer av spårningsmeddelanden du fick. Mer information finns i Så här skapar, initierar och konfigurerar du spårningsväxlar.
Vanligtvis körs ett distribuerat program med dess växlar inaktiverade, så att användarna inte behöver se många irrelevanta spårningsmeddelanden som visas på en skärm eller fylla i en loggfil när programmet körs. Om ett problem uppstår under programkörningen kan du stoppa programmet, aktivera växlarna och starta om programmet. Sedan visas spårningsmeddelandena.
Om du vill använda en växel måste du först skapa ett växelobjekt från en BooleanSwitch-klass , en TraceSwitch-klass eller en utvecklardefinierad växelklass. Mer information om hur du skapar utvecklardefinierade växlar Switch finns i klassen i .NET Framework-referensen. Sedan anger du ett konfigurationsvärde som anger när växelobjektet ska användas. Sedan testar du inställningen för växelobjektet i olika spårningsmetoder för spårning (eller felsökning).
Spårningsnivåer
När du använder TraceSwitch finns det ytterligare överväganden. Ett TraceSwitch-objekt har fyra egenskaper som returnerar booleska värden som anger om växeln är inställd på minst en viss nivå:
Med nivåer kan du begränsa mängden spårningsinformation som du får till endast den information som behövs för att lösa ett problem. Du anger den detaljnivå som du vill ha i spårningsutdata genom att ange och konfigurera spårningsväxlar till lämplig spårningsnivå. Du kan få felmeddelanden, varningsmeddelanden, informationsmeddelanden, utförliga spårningsmeddelanden eller inget meddelande alls.
Det är helt upp till dig att bestämma vilken typ av meddelande som ska associeras med varje nivå. Innehållet i spårningsmeddelanden beror vanligtvis på vad du associerar med varje nivå, men du avgör skillnaderna mellan nivåerna. Du kanske vill ange detaljerade beskrivningar av ett problem på nivå 3 (info), till exempel, men endast ange ett felreferensnummer på nivå 1 (fel). Det är helt upp till dig att bestämma vilket schema som fungerar bäst i ditt program.
Dessa egenskaper motsvarar värdena 1 till 4 i TraceLevel-uppräkningen . I följande tabell visas nivåerna för TraceLevel-uppräkning och deras värden.
Uppräknat värde | Heltalsvärde | Typ av meddelande som visas (eller skrivs till ett angivet utdatamål) |
---|---|---|
Av | 0 | Ingen |
Fel | 1 | Endast felmeddelanden |
Varning | 2 | Varningsmeddelanden och felmeddelanden |
Info | 3 | Informationsmeddelanden, varningsmeddelanden och felmeddelanden |
Utförlig | 4 | Utförliga meddelanden, informationsmeddelanden, varningsmeddelanden och felmeddelanden |
Egenskaperna TraceSwitch anger den maximala spårningsnivån för växeln. Det vill: spårningsinformation skrivs för den angivna nivån samt för alla lägre nivåer. Om TraceInfo till exempel är sant är TraceError och TraceWarning också sanna, men TraceVerbose kan mycket väl vara falskt.
De här egenskaperna är skrivskyddade. TraceSwitch-objektet anger dem automatiskt när egenskapen TraceLevel har angetts. Till exempel:
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());
Utvecklardefinierade växlar
Förutom att tillhandahålla BooleanSwitch och TraceSwitch kan du definiera dina egna växlar genom att ärva från klassen Switch och åsidosätta basklassmetoderna med anpassade metoder. Mer information om hur du skapar utvecklardefinierade växlar Switch finns i klassen i .NET Framework-referensen.