Arbeta med programloggar i Visual Basic
Objekten My.Application.Log
och My.Log
gör det enkelt att skriva loggnings- och spårningsinformation till loggar.
Så här loggas meddelanden
Först kontrolleras meddelandets allvarlighetsgrad med Switch egenskapen för loggens TraceSource egenskap. Som standard skickas endast meddelanden med allvarlighetsgrad "Information" och högre till spårningslyssnare TraceListener
, som anges i loggsamlingen. Varje lyssnare jämför sedan meddelandets allvarlighetsgrad med lyssnarens Switch egenskap. Om meddelandets allvarlighetsgrad är tillräckligt hög skriver lyssnaren ut meddelandet.
Följande diagram visar hur ett meddelande som skrivs till WriteEntry
metoden skickas till WriteLine
metoderna för loggens spårningslyssnare:
Du kan ändra beteendet för loggen och spårningslyssnare genom att ändra programmets konfigurationsfil. Följande diagram visar korrespondensen mellan delarna i loggen och konfigurationsfilen.
Där meddelanden loggas
Om sammansättningen inte har någon konfigurationsfil skrivs objekten My.Application.Log
och My.Log
till programmets felsökningsutdata (via DefaultTraceListener klassen). Dessutom My.Application.Log
skriver objektet till sammansättningens loggfil (via FileLogTraceListener klassen), medan My.Log
objektet skriver till ASP.NET webbsidans utdata (via WebPageTraceListener klassen).
Felsökningsutdata kan visas i Visual Studio-utdatafönstret när du kör programmet i felsökningsläge. Öppna fönstret Utdata genom att klicka på menyalternativet Felsöka, peka på Windows och sedan klicka på Utdata. I fönstret Utdata väljer du Felsöka i rutan Visa utdata från .
Som standard My.Application.Log
skriver loggfilen i sökvägen för användarens programdata. Du kan hämta sökvägen från FullLogFileName objektets DefaultFileLogWriter egenskap. Sökvägens format är följande:
BasePath
\CompanyName
\ProductName
\ProductVersion
Ett typiskt värde för BasePath
är följande.
C:\Documents and Inställningar\\username
Application Data
Värdena för CompanyName
, ProductName
och ProductVersion
kommer från programmets sammansättningsinformation. Formen på loggfilens namn är AssemblyName.log, där AssemblyName är filnamnet för sammansättningen utan tillägget. Om mer än en loggfil behövs, till exempel när den ursprungliga loggen inte är tillgänglig när programmet försöker skriva till loggen, är formuläret för loggfilens namn AssemblyName-iteration-.log, där iteration
är ett positivt .Integer
Du kan åsidosätta standardbeteendet genom att lägga till eller ändra datorns och programmets konfigurationsfiler. Mer information finns i Genomgång: Ändra var my.application.log skriver information.
Konfigurera logg Inställningar
Objektet Log
har en standardimplementering som fungerar utan en programkonfigurationsfil, app.config. Om du vill ändra standardinställningarna måste du lägga till en konfigurationsfil med de nya inställningarna. Mer information finns i Genomgång: Filtrera My.Application.Log-utdata.
Loggkonfigurationsavsnitten <system.diagnostics>
finns i noden i huvudnoden <configuration>
i filen app.config. Logginformation definieras i flera noder:
Lyssnarna
Log
för objektet definieras i<sources>
noden med namnet DefaultSource.Allvarlighetsgradsfiltret för
Log
objektet definieras i<switches>
noden med namnet DefaultSwitch.Logglyssnare definieras i
<sharedListeners>
noden.
Exempel på <sources>
, <switches>
och <sharedListeners>
noder visas i följande kod:
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</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"
/>
</sharedListeners>
</system.diagnostics>
</configuration>
Ändra logg Inställningar efter distribution
När du utvecklar ett program lagras dess konfigurationsinställningar i filen app.config, som du ser i exemplen ovan. När du har distribuerat programmet kan du fortfarande konfigurera loggen genom att redigera konfigurationsfilen. I ett Windows-baserat program är filens namn applicationName.exe.config och måste finnas i samma mapp som den körbara filen. För ett webbprogram är det här filen Web.config som är associerad med projektet.
När programmet kör koden som skapar en instans av en klass för första gången, kontrollerar det konfigurationsfilen för information om objektet. För objektet Log
sker detta första gången objektet Log
används. Systemet undersöker konfigurationsfilen bara en gång för ett visst objekt – första gången programmet skapar objektet. Därför kan du behöva starta om programmet för att ändringarna ska börja gälla.
I ett distribuerat program aktiverar du spårningskod genom att konfigurera om växelobjekt innan programmet startar. Detta innebär vanligtvis att aktivera och inaktivera växelobjekten eller genom att ändra spårningsnivåerna och sedan starta om programmet.
Säkerhetsöverväganden
Tänk på följande när du skriver data till loggen:
Undvik att läcka användarinformation. Se till att ditt program endast skriver godkänd information till loggen. Det kan till exempel vara acceptabelt att programloggen innehåller användarnamn, men inte användarlösenord.
Skydda loggplatser. Alla loggar som innehåller potentiellt känslig information ska lagras på en säker plats.
Undvik vilseledande information. I allmänhet bör ditt program verifiera alla data som angetts av en användare innan du använder dessa data. Detta inkluderar att skriva data till programloggen.
Undvik denial of service. Om ditt program skriver för mycket information till loggen kan det fylla loggen eller göra det svårt att hitta viktig information.