2010-07-19 2 views
8

J'ai ajouté le code suivant à mon fichier web.config:Comment envoyer la sortie de suivi à un fichier dans le système de fichiers?

<system.diagnostics> 
    <trace autoflush="false" indentsize="4" > 
     <listeners> 
     <add name="myListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="d:\debugging.txt" /> 
     <remove name="Default"></remove> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

et moi avons écrit cette ligne pour envoyer la sortie de trace:

System.Diagnostics.Trace.Write(sID + " tracing id"); 

Mais, je ne vois pas « le débogage. fichier txt "créé sur mon lecteur d: et il n'y a pas de sortie de trace.

Ai-je raté quelque chose?

+0

Pour les fichiers, vous devez avoir 'autoflush =" true "'. – leppie

+0

Oui, après avoir créé autoflush = "true", la sortie de trace arrive dans le fichier cible, mais à partir de la ligne: HttpContext.Current.Trace.Write (sID + "id de trace"); pas du System.Diagnostics.Trace. Et si je supprime l'attribut writeToDiagnosticsTrace = "true" de System.Web configSection, la trace HttpContext ne fonctionne pas non plus, ce qui est évident. – teenup

+0

ASP.NET affiche les messages de trace chaque fois que le suivi est activé pour une page. ('trace.axd TraceViewer'). Pour router des messages de trace vers une page Web ASP.NET, vous devez ajouter un objet 'WebPageTraceListener'. Pour afficher les messages de suivi ASP.NET et System.Diagnostics dans un contexte en dehors d'une page ASP.NET, utilisez un objet 'TextWriterTraceListener' pour écrire les messages de trace dans un fichier. – Kiquenet

Répondre

5

Vous devez effectuer un suivi vers un répertoire sur lequel le service ASP.NET dispose d'une autorisation d'écriture. Ce que j'aime faire, c'est de laisser l'écouteur par défaut et d'exécuter TechNet DebugView, qui a la possibilité d'enregistrer ou de se connecter à un fichier.

+0

J'ai configuré un dossier pour avoir un contrôle total sur le compte de l'ordinateur Asp.Net, maintenant le fichier est créé, mais il est vide et ne contient aucune sortie de trace. J'ai Trace = "True" sur ma page et je peux voir la sortie de traçage sur ma page dans le navigateur. – teenup

+0

Oui, après avoir fait autoflush = "true", la sortie de trace arrive dans le fichier cible, mais à partir de la ligne: HttpContext.Current.Trace.Write (sID + "tracing id"); pas du System.Diagnostics.Trace. Et si je supprime l'attribut writeToDiagnosticsTrace = "true" de System.Web configSection, la trace HttpContext ne fonctionne pas non plus, ce qui est évident. – teenup

+0

Vous avez le symbole 'TRACE' défini dans votre construction, n'est-ce pas? –

Questions connexes