Bonjour,

J'ai un petit problème avec l'utilisation de la trace de niveau "Warning" de System.Diagnotics : le fichier de trace est créé mais il reste vide. Si je mets le switch en mode "Verbose", ça trace bien.

Le projet que je veux tracer définit un TraceSource de nom "mysql" (http://dev.mysql.com/doc/refman/5.1/...g-tracing.html)

Alors dans Web.config je définis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<system.diagnostics>
    <sources>
      <source name="mysql" switchName="MySqlSwitch">
        <listeners>
          <add name="MySqlListener"
             type="System.Diagnostics.TextWriterTraceListener"
              traceOutputOptions="DateTime"
              initializeData="C:/Logs/Log_MySqlConnector/mysqlconnector.log" />
          <remove name ="Default" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="MySqlSwitch" value="Warning"/>
    </switches>
  </system.diagnostics>
Ca m'a l'air correct (je peine à trouver une bonne doc pour le framework 3.5 SP1).

Mes projets sont compilés avec la constante DEBUG définie.

Si j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<switches>
      <add name="MySqlSwitch" value="Verbose"/>
    </switches>
Les instructions écrites avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
System.Diagnotics.Trace.TraceWarning(msg);
sont bien retrouvées dans le fichier de log.

Et si j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<switches>
      <add name="MySqlSwitch" value="Warning"/>
    </switches>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
System.Diagnotics.Trace.TraceWarning(msg);
ne génère rien dans le log...

Merci pour vos lumières.

Barbara

Edit : j'ai trouvé : l'option de flush (et puis j'ai changé en sharedListener mais ça revient au même) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="mysql" switchName="MySqlSwitch">
        <listeners>
          <remove name ="Default" />
          <add name="MySqlListener"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="MySqlSwitch" value="Warning"/>
    </switches>
    <sharedListeners>
      <add name="MySqlListener"
          type="System.Diagnostics.TextWriterTraceListener"
          traceOutputOptions="DateTime"
          initializeData="C:/Logs/Log_MySqlConnector/mysqlconnector.log" />
    </sharedListeners>
  </system.diagnostics>