2010-07-19 12 views
8

Ho aggiunto il seguente codice nel mio file web.config:Come inviare l'output di traccia a un file nel file system?

<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> 

E ho scritto questa linea per l'invio di output di analisi:

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

Ma, non riesco a vedere alcun "debug. txt "file creato sul mio d: drive e non c'è traccia di output.

Mi manca qualcosa?

+0

Per i file, è necessario avere 'autoflush =" true "'. – leppie

+0

Sì, dopo aver eseguito autoflush = "true", l'output della traccia è in arrivo nel file di destinazione, ma dalla riga: HttpContext.Current.Trace.Write (sID + "ID traccia"); non dal System.Diagnostics.Trace. E se rimuovo l'attributo writeToDiagnosticsTrace = "true" da System.Web configSection allora anche la traccia HttpContext non funziona che è ovvio. – teenup

+0

ASP.NET visualizza i messaggi di traccia ogni volta che la traccia è abilitata per una pagina. ('trace.axd TraceViewer'). Per indirizzare i messaggi di traccia a una pagina Web ASP.NET, è necessario aggiungere un oggetto 'WebPageTraceListener'. Per visualizzare i messaggi di traccia ASP.NET e System.Diagnostics in un contesto esterno a una pagina ASP.NET, utilizzare un oggetto 'TextWriterTraceListener' per scrivere i messaggi di traccia in un file. – Kiquenet

risposta

5

È necessario eseguire il tracciamento in una directory su cui il servizio ASP.NET dispone dell'autorizzazione di scrittura.

Quello che mi piace fare è lasciare il listener predefinito ed eseguire TechNet DebugView, che ha la possibilità di salvare o accedere a un file.

+0

Ho configurato una cartella per avere il controllo completo per l'account macchina Asp.Net, ora il file è stato creato, ma è vuoto e non contiene alcun output di traccia. Ho Trace = "True" sulla mia pagina e posso vedere l'output della traccia sulla mia pagina nel browser. – teenup

+0

Sì, dopo aver eseguito autoflush = "true", l'output della traccia è in arrivo nel file di destinazione, ma dalla riga: HttpContext.Current.Trace.Write (sID + "ID traccia"); non dal System.Diagnostics.Trace. E se rimuovo l'attributo writeToDiagnosticsTrace = "true" da System.Web configSection allora anche la traccia HttpContext non funziona che è ovvio. – teenup

+0

Hai il simbolo 'TRACE' definito nella tua build, giusto? –

Problemi correlati