homelinksBlijf op de hoogte van de recente aanpassingen op vbvoorbeelden!
Visual Basic 2010 Voorbeelden

visual basic 2010 broncode voorbeelden

Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

31.6. TraceSource en TraceInformation

Print Email Deel op Facebook Deel op Twitter

Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

31.6.1. TraceSource Klasse

De hiervoor behandelde Trace en Debug klassen zijn bruikbaar om eenvoudige boodschappen ( tekst ) te registreren op de debug- of tracemedia ( de Trace.Listeners ).  Men deed dit aan de hand van Shared methods als Write, WriteIf, WriteLine, WriteLineIf, Assert en Fail.

De mogelijkheden bij het gebruik van deze klassen zijn beperkt.  Het gaat steeds om een eenvoudige tekst als debug of trace informatie, die dan nog eens expliciet door de caller moet worden bepaald.

Meer mogelijkheden biedt het gebruik van de System.Diagnostics.TraceSource klasse.

De bedoeling is hier een instantie of meerdere instanties te maken van deze klasse, waarbij per instantie kan worden bepaald ( aan de hand van filters ) welke boodschappen naar de listeners worden gezonden.

31.6.2. TraceInformation

Het gebruik van deze TraceSource klasse vereist wat meer codeerwerk dan de hiervoor behandelde Trace en Debug klassen.

Om te starten een eenvoudig voorbeeld :
Visual Basic 2010 Broncode
Imports System.Diagnostics
#Const TRACE = True
Class ExampleWithDefaultListener
    Public Shared Sub Main()
        Dim traceSource As New TraceSource("myTraceSource", SourceLevels.All)
        traceSource.TraceInformation("Message 1")
        traceSource.TraceInformation("Message 2")
    End Sub
End Class
Visual Studio : In het Output toolvenster verschijnt het volgende :
myTraceSource Information: 0 : Message 1
myTraceSource Information: 0 : Message 2
De naam van de TraceSource moet worden ingesteld, dit kan door deze als eerste argumentwaarde aan de constructor van deze klasse door te geven.
Doorgaans wordt de naam van de applicatie, component of assembly te gebruiken voor de naam van deze TraceSource.  Deze naam wordt immers opgenomen in de boodschap, waardoor het duidelijk werd wie juist deze boodschap heeft laten registreren.

De SourceLevels enumeratiewaarde voor de TraceSource geeft aan naar welke boodschappen de listeners van deze TraceSource ( TraceSource.Listeners ) luisteren.

In dit geval worden "information" boodschappen getraced, dit kan via de TraceInformation method van de TraceSource klasse.  Doordat hier de het traceSource object alle boodschappen ( SourceLevels.All ) doorzendt naar de listeners, zullen ook deze information boodschappen ( SourceLevels.Informations ) worden geregistreerd.

We hebben geen aanpassing aangebracht aan welke listeners deze TraceSource heeft, waardoor deze boodschappen enkel bij de DefaultListener terecht komen.
In dit geval brengt de DefaultListener de boodschappen in het Output toolvenster, en welk in volgende vorm :
<tracesource name> <trace event type>: <message ID> : <message>

Via de TraceInformation method kunnen we zelf geen ID voor deze boodschap uitkiezen, waardoor hier gewoon 0 wordt genomen.  Verderop meer over deze IDs.
Het soort van boodschap is hier dus een gewone informatie boodschap.

Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.