(Trace et Débug) Déclarer un écouteur personnalisé dans le fichier de configurat

Signaler
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Bonjour à tous, j'ai crée une classe pour personnaliser mes messages de débogage provenant des classes Trace et Debug.
Celle ci fonctionne très bien lorsque je rajoute l'écouteur TraceListener avec le code ci-dessous :
Trace.Listeners.Add(New clsTraceListener)


Par contre j'aimerais pouvoir déclarer cet écouteur non pas dans le code mais dans le fichier de configuration MyApp.exe.config comme celui-ci :
(L'écouteur MyListener2 fonctionne mais pas l'écouteur MyListener3)

<configuration>
<system.diagnostics>
<switches>
      <!--Définie le niveau d'affichage des messsages de la classe Debug
          *** Ce commutateur est inactif en mode de compilation Release ***
          0=Off, 1=Error, 2=Warning, 3=Info, 4=Verbose-->

      <!--Définie le niveau d'affichage des messsages de la classe Trace
          0=Off, 1=Error, 2=Warning, 3=Info, 4=Verbose-->

</switches>
    <!--Définie les paramétres autoflush et IndentSize de la classe Trace-->
    <trace autoflush ="true" indentsize ="4">
      <listeners>
        
        
      </listeners>
      </trace>
    <!--Définie les paramétres asssertuienabled et logfilename de la méthode assert-->
    
</system.diagnostics>
</configuration>



Public Class clsTraceListener
    Inherits System.Diagnostics.TraceListener
    Dim sw As New System.IO.StreamWriter("MyTrace.txt")
    Public Overloads Overrides Sub Write(ByVal message As String)
        ' Affiche l'indentation et l'heure uniquement en début de ligne.
        If Me.NeedIndent Then
            sw.Write("[" & Now.ToString & " " & Now.Millisecond & "] ")
            Me.WriteIndent()
        End If
        sw.Write(message)
        sw.Flush() ' garantit que les données sont écrites dans un fichier.
    End Sub

    Public Overloads Overrides Sub WriteLine(ByVal message As String)
        ' Utilise la méthode write pour afficher une ligne entière
        Me.Write(message & ControlChars.CrLf)
        'La prochaine ligne doit être indentée.
        ' et l'heure en cours affichée.
        Me.NeedIndent = True
    End Sub
End Class


Voici ma classe perso ci-dessus pour ceux que ça interresse mais elle n'est pas finie, a terme je rajouterais des options de sorties configurables si possible depuis le fichier de configuration mais ca sera pour une prochaine fois.
Déjà il faudrait que je puisse déclarer cet écouteur dans mon fichier de config, pouvez vous m'aider sur ce point ?
En vous remerciant d'avance.

1 réponse

Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013

Je me réponds ;)
La réponse se trouve là je pense :
Tapez le texte de l'url ici.
Il faut attribuer un nom fort à l'Assembly et comme je ne maîtrise pas du tout cette partie je pense que je vais me passer du fichier de configuration pour tout faire avec le code.