Comment peut-on regarder les traces Debug.WriteLine de .NET en dehors du débogueur?Voir des traces de débogage sans débogueur?
Répondre
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.
Découvrez DebugView. Je n'ai pas utilisé cela avec .NET, mais je l'ai utilisé avec des applications VC++.
dang, lente sur le tirage. – scottm
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
Utilisez dbgview
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
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
Oh, je vois, je dois utiliser Trace.WriteLine au lieu de Debug.WriteLine pour que la constante TRACE fonctionne. – Qwertie