Comment surcharger la méthode Trace.Writeline pour faire un Logger personnalisé

Signaler
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Messages postés
14825
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
-
Bonjour à tous,
j'ai largement sollicité le site dernièrement, j'espère que vous ne m'en voudrez pas pour ça, en même temps j'ai presque fini mon appli et je remercie tous le monde de m'avoir aidé jusque là. Cette fois-ci J'aimerais faire un logger perso mais j'ai des difficultés pour surcharger une méthode existante et je ne suis même pas sûre que ca soit faisable, j'espére que vous pourrez m’éclairer davantage. Si besoin je pourrais fournir le code complet car je pense que ça intéressera du monde.
Le soucis c'est que je voudrais que dans la syntaxe suivante : Trace.writelineif (Conditions, TextLog), TextLog soit remplacé par une fonction perso "WriteLog" sans modifier la syntaxe d'origine et donc en utilisant une surcharge de la méthode existante. (L'interêt de cette fonction est d'enrichir et de formater le texte à écrire dans les Log sans polluer le reste du programme avec une écriture trop longue et trop compliquée).

Voici un exemple du code avec la méthode d'origine du Framework :
Dim TextLog = "Demarrage de l'application"
        Trace.WriteLineIf(MyTraceSwitch.TraceError, TextLog)


Ma fonction WriteLog destinée à retourner le texte "TextLog" par un texte personnalisé :
  Public Function WriteLog(ByVal TraceLevel As TraceLevel, TextLog As String, Optional ByVal WriteSubName As Boolean = True)
        ......
        Return TextLog
    End Function 


En attendant j'uilise ce code qui fonctionne mais hélas sans la surcharge :
Trace.WriteLineIf(MyTraceSwitch.TraceError, WriteLog(TraceLevel.Error, "MonTexte de Log"))

1 réponse

Messages postés
14825
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
157
Bonjour,

Une autre solution serait de la refaire et de créer ton propre système.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site