Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här genomgången visar hur du ändrar standardloggfiltreringen My.Application.Log för objektet, för att styra vilken information som skickas från Log objektet till lyssnarna och vilken information som skrivs av lyssnarna. Du kan ändra loggningsbeteendet även när du har skapat programmet, eftersom konfigurationsinformationen lagras i programmets konfigurationsfil.
Komma igång
Varje meddelande som My.Application.Log skriver har en associerad allvarlighetsgrad, som filtreringsmekanismer använder för att styra loggutdata. Det här exempelprogrammet använder My.Application.Log metoder för att skriva flera loggmeddelanden med olika allvarlighetsnivåer.
Så här skapar du exempelprogrammet
Öppna ett nytt Visual Basic Windows-programprojekt.
Lägg till en knapp med namnet Button1 i Form1.
Click Lägg till följande kod i händelsehanteraren för Button1:
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)Kör programmet i felsökningsprogrammet.
Tryck på Knapp1.
Programmet skriver följande information till programmets felsökningsutdata och loggfil.
DefaultSource Information: 0 : In Button1_ClickDefaultSource Error: 2 : Error in the application.Stäng programmet.
Information om hur du visar programmets felsökningsutdatafönster finns i Utdatafönster. Information om platsen för programmets loggfil finns i Genomgång: Fastställa var my.application.log skriver information.
Anmärkning
Som standard töms loggfilens utdata när programmet stängs.
I exemplet ovan genererar det andra anropet WriteEntry till metoden och anropet till WriteException metoden loggutdata, medan de första och sista anropen
WriteEntrytill metoden inte gör det. Det beror på att allvarlighetsgradernaWriteEntryför ochWriteExceptionär "Information" och "Fel", som båda tillåts avMy.Application.Logobjektets standardloggfiltrering. Händelser med allvarlighetsgraderna "Start" och "Stop" hindras dock från att generera loggutdata.
Filtrering för alla my.application.log-lyssnare
Objektet My.Application.Log använder ett SourceSwitch som heter DefaultSwitch för att styra vilka meddelanden som skickas från metoderna WriteEntry och WriteException till logglyssnarna. Du kan konfigurera DefaultSwitch i programmets konfigurationsfil genom att ange dess värde till ett av SourceLevels uppräkningsvärdena. Som standard är dess värde "Information".
Den här tabellen visar allvarlighetsgraden som krävs för att loggen ska kunna skriva ett meddelande till lyssnarna med en viss DefaultSwitch inställning.
| DefaultSwitch-värde | Allvarlighetsgrad för meddelanden som krävs för utdata |
|---|---|
Critical |
Critical |
Error |
Critical eller Error |
Warning |
Critical, Error eller Warning |
Information |
Critical, Error, Warningeller Information |
Verbose |
Critical, Error, Warning, Informationeller Verbose |
ActivityTracing |
Start, Stop, Suspend, Resumeeller Transfer |
All |
Alla meddelanden tillåts. |
Off |
Alla meddelanden blockeras. |
Anmärkning
Metoderna WriteEntry och WriteException har var och en en överlagring som inte anger någon allvarlighetsgrad. Den implicita allvarlighetsgraden för överbelastningen WriteEntry är "Information" och den implicita allvarlighetsgraden för överlagringen WriteException är "Fel".
I den här tabellen förklaras loggutdata som visas i föregående exempel: med standardinställningen DefaultSwitch "Information" genereras loggutdata endast från det andra anropet till WriteEntry-metoden och från anropet till WriteException-metoden.
Logga endast aktivitetsspårningshändelser
Högerklicka på app.config i Solution Explorer och välj Öppna.
-eller-
Om det inte finns någon app.config fil:
På Projekt-menyn väljer du Lägg till nytt objekt.
I dialogrutan Lägg till nytt objekt väljer du Programkonfigurationsfil.
Klicka på Lägg till.
Leta upp avsnittet
<switches>, som finns i avsnittet<system.diagnostics>, vilket är i avsnittet på översta nivån<configuration>.Hitta det element som lägger till
DefaultSwitchi växelsamlingen. Det bör se ut ungefär så här:<add name="DefaultSwitch" value="Information" />Ändra värdet för
valueattributet till "ActivityTracing".Innehållet i app.config-filen bör likna följande XML:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>Kör programmet i felsökningsprogrammet.
Tryck på Knapp1.
Programmet skriver följande information till programmets felsökningsutdata och loggfil:
DefaultSource Start: 4 : Entering Button1_ClickDefaultSource Stop: 5 : Leaving Button1_ClickStäng programmet.
Ändra tillbaka värdet för
valueattributet till "Information".Anmärkning
Växelinställningen
DefaultSwitchstyr endastMy.Application.Log. Det ändrar inte hur .NET System.Diagnostics.Trace och System.Diagnostics.Debug klasserna beter sig.
Individuell filtrering för my.application.log-lyssnare
I föregående exempel visas hur du ändrar filtreringen för alla My.Application.Log utdata. Det här exemplet visar hur du filtrerar en enskild logglyssnare. Som standard har ett program två lyssnare som skriver till programmets felsökningsutdata och loggfilen.
Konfigurationsfilen styr beteendet för logglyssnare genom att låta var och en ha ett filter, vilket liknar en växel för My.Application.Log. En logglyssnare matar endast ut ett meddelande om meddelandets allvarlighetsgrad tillåts av både loggens DefaultSwitch och logglyssningsfiltret.
Det här exemplet visar hur du konfigurerar filtrering för en ny felsökningslyssnare och lägger till den i Log objektet. Standardlyssnaren Log för felsökning bör tas bort från objektet, så det är tydligt att felsökningsmeddelandena kommer från den nya felsökningslyssnaren.
Logga endast aktivitetsspårningshändelser
Högerklicka på app.config i Solution Explorer och välj Öppna.
-eller-
Om det inte finns någon app.config fil:
På Projekt-menyn väljer du Lägg till nytt objekt.
I dialogrutan Lägg till nytt objekt väljer du Programkonfigurationsfil.
Klicka på Lägg till.
Högerklicka på app.config i Solution Explorer. Välj Öppna.
Leta upp
<listeners>-avsnittet i<source>-avsnittet medname-attributet "DefaultSource", som finns under<sources>-avsnittet. Sektionen<sources>är under sektionen<system.diagnostics>i topplagssektionen<configuration>.Lägg till det här elementet i
<listeners>avsnittet:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>Leta upp
<sharedListeners>-avsnittet i<system.diagnostics>-avsnittet i det översta<configuration>-avsnittet.Lägg till det här elementet i det
<sharedListeners>avsnittet:<add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>EventTypeFilter Filtret tar ett av uppräkningsvärdena SourceLevels som attribut
initializeData.Innehållet i app.config-filen bör likna följande XML:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>Kör programmet i felsökningsprogrammet.
Tryck på Knapp1.
Programmet skriver följande information till programmets loggfil:
Default Information: 0 : In Button1_ClickDefault Error: 2 : Error in the application.Programmet skriver mindre information till programmets felsökningsutdata på grund av den mer restriktiva filtreringen.
Default Error 2 ErrorStäng programmet.
Mer information om hur du ändrar logginställningar efter distributionen finns i Arbeta med programloggar.