Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

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

32.12. TraceSource.Switch, SourceSwitch en SourceLevels

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Bij creatie van een TraceSource object kan via de constructor worden ingesteld welke traceboodschappen (van welke TraceEventType) naar de listeners worden doorgezonden.
Dit kan ook bepaald worden aan de hand van de Switch property van het TraceSource object.  Deze Switch property levert een SourceSwitch object op.  Deze heeft dan op zijn beurt een (settable) Level property van het type SourceLevels.

Het is deze Level property die in onderstaand voorbeeld wordt gebruikt :
Visual Basic 2012 Broncode - Codevoorbeeld 809
Imports System.Diagnostics
#Const TRACE = True
Class ExampleSourceLevels
    Private Shared traceSource As TraceSource
    Public Shared Sub Main()
        traceSource = New TraceSource("myTraceSource")
        traceSource.Listeners.Add(New ConsoleTraceListener)
        '
        Dim allSourceLevels As SourceLevels() = _
                             New SourceLevels() {SourceLevels.Off, _
                                                 SourceLevels.Critical, _
                                                 SourceLevels.Error, _
                                                 SourceLevels.Warning, _
                                                 SourceLevels.Information, _
                                                 SourceLevels.Verbose, _
                                                 SourceLevels.ActivityTracing, _
                                                 SourceLevels.All}
        '
        For Each sourceLevels As SourceLevels In allSourceLevels
            TraceEvents(sourceLevels)
        Next
        '
        Console.ReadLine()
    End Sub
    Public Shared Sub TraceEvents(ByVal sourceLevels As SourceLevels)
        traceSource.Switch.Level = sourceLevels.Information
        traceSource.TraceEvent(TraceEventType.Information, 0, _
                               "with SourceLevels." & _
                               sourceLevels.ToString() & " : ")
        '
        traceSource.Switch.Level = sourceLevels
        traceSource.TraceEvent(TraceEventType.Critical, 1, "Critical Message")
        traceSource.TraceEvent(TraceEventType.Error, 2, "Error Message")
        traceSource.TraceEvent(TraceEventType.Warning, 3, "Warning Message")
        traceSource.TraceEvent(TraceEventType.Information, 4, _
                                                          "Information Message")
        traceSource.TraceEvent(TraceEventType.Verbose, 5, "Verbose Message")
        traceSource.TraceEvent(TraceEventType.Resume, 6, "Resume Message")
        traceSource.TraceEvent(TraceEventType.Start, 7, "Start Message")
        traceSource.TraceEvent(TraceEventType.Stop, 8, "Stop Message")
        traceSource.TraceEvent(TraceEventType.Suspend, 9, "Suspend Message")
        traceSource.TraceEvent(TraceEventType.Transfer, 10, "Transfer Message")
    End Sub
End Class
Op de console en in het Output toolvenster verschijnt het volgende :
Console Application Output
myTraceSource Information: 0 : with SourceLevels.Off :
myTraceSource Information: 0 : with SourceLevels.Critical :
myTraceSource Critical: 1 : Critical Message
myTraceSource Information: 0 : with SourceLevels.Error :
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Information: 0 : with SourceLevels.Warning :
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Warning: 3 : Warning Message
myTraceSource Information: 0 : with SourceLevels.Information :
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Warning: 3 : Warning Message
myTraceSource Information: 4 : Information Message
myTraceSource Information: 0 : with SourceLevels.Verbose :
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Warning: 3 : Warning Message
myTraceSource Information: 4 : Information Message
myTraceSource Verbose: 5 : Verbose Message
myTraceSource Information: 0 : with SourceLevels.ActivityTracing :
myTraceSource Resume: 6 : Resume Message
myTraceSource Start: 7 : Start Message
myTraceSource Stop: 8 : Stop Message
myTraceSource Suspend: 9 : Suspend Message
myTraceSource Transfer: 10 : Transfer Message
myTraceSource Information: 0 : with SourceLevels.All :
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Warning: 3 : Warning Message
myTraceSource Information: 4 : Information Message
myTraceSource Verbose: 5 : Verbose Message
myTraceSource Resume: 6 : Resume Message
myTraceSource Start: 7 : Start Message
myTraceSource Stop: 8 : Stop Message
myTraceSource Suspend: 9 : Suspend Message
myTraceSource Transfer: 10 : Transfer Message
Merk op dat als je bijvoorbeeld SourceLevels.Information gebruikt voor een TraceSource dat dan zowel de boodschappen van TraceEventType Critical, Error, Warning en Information worden doorgezonden.
Waarde SourceLevels.Information is dus nog meer dan SourceLevels.Critical Or SourceLevels.Error Or SourceLevels.Warning.  SourceLevels.All is gelijk aan SourceLevels.Verbose Or SourceLevels.ActivityTracing.
Beetje vreemd dus dat de definitie van de SourceLevels enumeratie het <Flags> attribuut bevat.

32.12.1. SwitchSource

We kunnen ook de Switch property van een TraceSoure object instellen door gebruik te maken van SwitchSource objecten :
Visual Basic 2012 Broncode - Codevoorbeeld 810
Imports System.Diagnostics
#Const TRACE = True
Class ExampleSourceSwitch
    Private Shared traceSource As TraceSource
    Public Shared Sub Main()
        traceSource = New TraceSource("myTraceSource")
        traceSource.Listeners.Add(New ConsoleTraceListener)
        '
        Dim sourceSwitch1 As New SourceSwitch("warningOrMoreSeriousSwitch", _
                                              "Warning")
        Dim sourceSwitch2 As New SourceSwitch("errorOrMoreSeriousSwitch", _
                                              "Error")
        '
        traceSource.Switch = sourceSwitch1
        Console.WriteLine(traceSource.Switch.Level.ToString())
        '
        traceSource.TraceEvent(TraceEventType.Critical, 1, "Critical Message")
        traceSource.TraceEvent(TraceEventType.Error, 2, "Error Message")
        traceSource.TraceEvent(TraceEventType.Warning, 3, "Warning Message")
        traceSource.TraceEvent(TraceEventType.Information, 4, "Information Message")
        '
        traceSource.Switch = sourceSwitch2
        Console.WriteLine(traceSource.Switch.Level.ToString())
        '
        traceSource.TraceEvent(TraceEventType.Critical, 5, "Critical Message")
        traceSource.TraceEvent(TraceEventType.Error, 6, "Error Message")
        traceSource.TraceEvent(TraceEventType.Warning, 7, "Warning Message")
        '
        Console.ReadLine()
    End Sub
End Class
Op de console verschijnt het volgende :
Console Application Output
Warning
myTraceSource Critical: 1 : Critical Message
myTraceSource Error: 2 : Error Message
myTraceSource Warning: 3 : Warning Message
Error
myTraceSource Critical: 5 : Critical Message
myTraceSource Error: 6 : Error Message

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.