Activer/Desactiver TRACE par l'intermediaire fichier .config [Résolu]

Signaler
Messages postés
66
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
3
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
12 mars 2010
-
Bonjour,

Voilà, j'ai réalisé une application Console, avec des #ifdef(TRACE)....
Et j'ai lu qu'on pouvait parametre la trace par l'intermediaire d'un fichier XML de configuration qui porte le nom de l'application+.config et qui à cette tete là :

<configuration>
   <system.diagnostics>
      <trace autoflush="false" indentsize="3" />
   </system.diagnostics>
</configuration>

J'aimerai savoir si par l'intermediaire de ce fichier on peut activer/desactiver le mode TRACE?

Merci beaucoup

8 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Salut,
Oui bien sûr, le config file est entre autre fait pour ça. Pour disabler le trace tu mets ça valeur à 0 : value="0"
MSDN (ANG) / MSDN (FR)

<hr size="2" />VC# forever <
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
pour disabler

non... pour désactiver

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
66
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
6 mars 2008

Réponse :

Dans l'application il faut (pour une trace dans la console) :

 System.Diagnostics.BooleanSwitch traceD =
                new System.Diagnostics.BooleanSwitch("Debug", "TestCoucou");

 Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

Là, où on veut mettre une trace :

Trace.WriteLineIf(traceD.Enabled,"Coucou");

Dans le fichier de configuration de l'application :

<configuration>
    <system.diagnostics>
        <switches>
            Debug" value="0">
        </switches>
    </system.diagnostics>
</configuration>

Aprés c'est 0 pour désactiver et 1 pour activer.

++
Messages postés
66
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
6 mars 2008

Ouep en fait je crois qu'il y a un truc que j'ai pas bien compris :

J'ai le fichier appli.exe.config suivant :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.diagnostics>
      <trace value="0" autoflush="false" indentsize="3" />
   </system.diagnostics>
</configuration>

et dans mon code j'ai des trucs du genre :

#if(TRACE)
    Console.Write("Coucou");
#def

Donc je compile le tout avec la constante de compilation : TRACE

Donc ce que je souhaite c'est que lorsque que je met value à 0, le message coucou ne s'affiche pas.

Mais est-ce que ma méthode est completement fausse, ou est-ce qu'il faut absolument que je passe par un switches??

Merci

Ps : Désolé d'avoir accepté la réponse si vite!
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
nan... tu n'as pas tout compris :)


 


à la place de
#if(TRACE)
    Console.Write("Coucou");
#endif

mets :
Trace.WriteLine("Coucou");






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
Sans oublier de mettre au démarrage :

Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

Bien sure si tu traces dans la console.
Messages postés
66
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
6 mars 2008

D'accord merci je vais essayer.

Dois-je utiliser des switch ou non?
Messages postés
3
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
12 mars 2010

Fun toujours