Delen via


Werken met toepassingslogboeken in Visual Basic

Met de My.Application.Log en My.Log objecten kunt u eenvoudig logboekregistratie- en traceringsgegevens naar logboeken schrijven.

Hoe berichten worden vastgelegd

Eerst wordt de ernst van het bericht gecontroleerd met de eigenschap van de Switch eigenschap van het logboek TraceSource . Standaard worden alleen berichten met ernst 'Informatie' en hoger doorgegeven aan de traceringslisteners, die zijn opgegeven in de verzameling van TraceListener het logboek. Vervolgens vergelijkt elke listener de ernst van het bericht met de eigenschap van Switch de listener. Als de ernst van het bericht hoog genoeg is, schrijft de listener het bericht uit.

In het volgende diagram ziet u hoe een bericht dat naar de WriteEntry methode is geschreven, wordt doorgegeven aan de methoden van de WriteLine traceringslisteners van het logboek:

Diagram that shows My log call.

U kunt het gedrag van het logboek en de traceerlisteners wijzigen door het configuratiebestand van de toepassing te wijzigen. In het volgende diagram ziet u de correspondentie tussen de onderdelen van het logboek en het configuratiebestand.

Diagram that shows My log configuration.

Waar berichten worden geregistreerd

Als de assembly geen configuratiebestand heeft, schrijven de My.Application.Log en My.Log objecten naar de foutopsporingsuitvoer van de toepassing (via de DefaultTraceListener klasse). Daarnaast schrijft het My.Application.Log object naar het logboekbestand van de assembly (via de FileLogTraceListener klasse), terwijl het My.Log object naar de uitvoer van de ASP.NET webpagina schrijft (via de WebPageTraceListener klasse).

De uitvoer voor foutopsporing kan worden weergegeven in het visual Studio-uitvoervenster bij het uitvoeren van uw toepassing in de foutopsporingsmodus. Als u het uitvoervenster wilt openen, klikt u op het menu-item Foutopsporing, wijst u Windows aan en klikt u vervolgens op Uitvoer. Selecteer in het venster Uitvoer de foutopsporing in het vak Uitvoer weergeven.

My.Application.Log Schrijft standaard het logboekbestand in het pad voor de toepassingsgegevens van de gebruiker. U kunt het pad ophalen uit de FullLogFileName eigenschap van het DefaultFileLogWriter object. De indeling van dat pad is als volgt:

BasePath\CompanyName\ProductName\ProductVersion

Een typische waarde hiervoor BasePath is als volgt.

C:\Documents and Instellingen\username\Application Data

De waarden van CompanyName, ProductNameen ProductVersion zijn afkomstig uit de assemblygegevens van de toepassing. De naam van het logboekbestand is AssemblyName.log, waarbij AssemblyName de bestandsnaam van de assembly is zonder de extensie. Als er meer dan één logboekbestand nodig is, bijvoorbeeld wanneer het oorspronkelijke logboek niet beschikbaar is wanneer de toepassing probeert naar het logboek te schrijven, is het formulier voor de logboekbestandsnaam AssemblyName-iteratie-.log, waar iteration is een positief.Integer

U kunt het standaardgedrag overschrijven door de computer en de configuratiebestanden van de toepassing toe te voegen of te wijzigen. Zie Walkthrough: Wijzigen waar My.Application.Log informatie schrijft voor meer informatie.

Logboek Instellingen configureren

Het Log object heeft een standaard implementatie die werkt zonder een toepassingsconfiguratiebestand, app.config. Als u de standaardinstellingen wilt wijzigen, moet u een configuratiebestand toevoegen met de nieuwe instellingen. Zie Walkthrough: My.Application.Log-uitvoer filteren voor meer informatie.

De secties voor logboekconfiguratie bevinden zich in het <system.diagnostics> knooppunt in het hoofdknooppunt <configuration> van het bestand app.config. Logboekgegevens worden gedefinieerd in verschillende knooppunten:

  • De listeners voor het Log object worden gedefinieerd in het knooppunt met de <sources> naam DefaultSource.

  • Het ernstfilter voor het Log object wordt gedefinieerd in het knooppunt met de <switches> naam DefaultSwitch.

  • De logboeklisteners worden gedefinieerd in het <sharedListeners> knooppunt.

Voorbeelden van <sources>, <switches>en <sharedListeners> knooppunten worden weergegeven in de volgende code:

<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>

Logboek Instellingen wijzigen na implementatie

Wanneer u een toepassing ontwikkelt, worden de configuratie-instellingen opgeslagen in het bestand app.config, zoals wordt weergegeven in de bovenstaande voorbeelden. Nadat u de toepassing hebt geïmplementeerd, kunt u het logboek nog steeds configureren door het configuratiebestand te bewerken. In een Windows-toepassing is de naam van dit bestand applicationName.exe.config en moet deze zich in dezelfde map bevinden als het uitvoerbare bestand. Voor een webtoepassing is dit het Web.config-bestand dat aan het project is gekoppeld.

Wanneer uw toepassing de code uitvoert waarmee een exemplaar van een klasse voor de eerste keer wordt gemaakt, wordt het configuratiebestand gecontroleerd op informatie over het object. Voor het Log object gebeurt dit de eerste keer dat het Log object wordt geopend. Het systeem onderzoekt het configuratiebestand slechts één keer voor een bepaald object. De eerste keer dat uw toepassing het object maakt. Daarom moet u de toepassing mogelijk opnieuw starten om de wijzigingen van kracht te laten worden.

In een geïmplementeerde toepassing schakelt u traceringscode in door switchobjecten opnieuw te configureren voordat uw toepassing wordt gestart. Dit omvat meestal het in- en uitschakelen van de schakelobjecten of door de traceringsniveaus te wijzigen en vervolgens uw toepassing opnieuw op te starten.

Beveiligingsoverwegingen

Houd rekening met het volgende bij het schrijven van gegevens naar het logboek:

  • Vermijd het lekken van gebruikersgegevens. Zorg ervoor dat uw toepassing alleen goedgekeurde informatie naar het logboek schrijft. Het kan bijvoorbeeld acceptabel zijn dat het toepassingslogboek gebruikersnamen bevat, maar geen gebruikerswachtwoorden.

  • Zorg ervoor dat logboeklocaties veilig zijn. Elk logboek dat mogelijk gevoelige informatie bevat, moet worden opgeslagen op een veilige locatie.

  • Vermijd misleidende informatie. Over het algemeen moet uw toepassing alle gegevens valideren die door een gebruiker zijn ingevoerd voordat deze gegevens worden gebruikt. Dit omvat het schrijven van gegevens naar het toepassingslogboek.

  • Vermijd Denial of Service. Als uw toepassing te veel informatie naar het logboek schrijft, kan dit het logboek vullen of belangrijke informatie moeilijk vinden.

Zie ook