2009-04-21 6 views

Répondre

2

Vous pouvez utiliser DbgView de Sysinternals ou ajouter ce qui suit à vos applications config file pour tracer des messages à la console:

<configuration> 
    <system.diagnostics> 
    <sources> 
     <source name="TraceTest" switchName="SourceSwitch" 
     switchType="System.Diagnostics.SourceSwitch" > 
     <listeners> 
      <add name="console" /> 
      <remove name ="Default" /> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <!-- You can set the level at which tracing is to occur --> 
     <add name="SourceSwitch" value="Warning" /> 
     <!-- You can turn tracing off --> 
     <!--add name="SourceSwitch" value="Off" --> 
    </switches> 
    <sharedListeners> 
     <add name="console" 
     type="System.Diagnostics.ConsoleTraceListener" 
     initializeData="false"/> 
    </sharedListeners> 
    <trace autoflush="true" indentsize="4"> 
     <listeners> 
     <add name="console" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

Vous pouvez également modifier le type de la trace écouteur dans le fichier journal de System.Diagnostics.ConsoleTraceListener à tout autre écouteur de trace, par exemple pour se connecter à EventLog du système ou pour effectuer le suivi vers une application personnalisée.

+0

J'ai essayé d'ajouter un fichier .exe.config, avec le contenu ci-dessus, dans le même dossier que mon exécutable, mais rien ne s'est passé lorsque le programme a tracé des choses. J'ai également essayé System.Diagnostics.TextWriterTraceListener dans le fichier de configuration comme suggéré à http://msdn.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener(VS.80).aspx, qui a fonctionné seulement s'il y avait beaucoup de données de trace - apparemment, il ne vide pas le fichier automatiquement. – Qwertie

+0

Suivi: autoflush = "false" doit être remplacé par autoflush = "true". Et c'est dommage que je n'arrive pas à faire fonctionner l'écouteur de trace de la console. Le pire de tout cela ne fonctionne pas sur une version Release, même si j'ai défini TRACE! – Qwertie

+0

Oh, je vois, je dois utiliser Trace.WriteLine au lieu de Debug.WriteLine pour que la constante TRACE fonctionne. – Qwertie

1

Découvrez DebugView. Je n'ai pas utilisé cela avec .NET, mais je l'ai utilisé avec des applications VC++.

+0

dang, lente sur le tirage. – scottm

+0

Il capture des traces pour l'ensemble du système. J'aimerais avoir quelque chose que je peux donner à un autre ingénieur et dire «utilisez-le pour voir les traces»; Malheureusement, cet outil produit beaucoup de bruit et je ne vois pas de moyen évident de filtrer uniquement mon application. Aussi malheureux est que mon application contient du code C++ qui produit également des traces non pertinentes que je voudrais cacher - donc une trace .NET seulement serait bien. – Qwertie

Questions connexes