2010-07-19 6 views
8

he añadido el siguiente código al archivo web.config:¿Cómo enviar la salida de rastreo a un archivo en el sistema de archivos?

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

y he escrito esta línea para enviar la salida de rastreo:

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

Pero, no puedo ver ninguna "depuración. txt "archivo creado en mi d: unidad y no hay salida de rastreo.

Me estoy perdiendo algo?

+0

Para los archivos, debe tener 'autoflush =" true "'. – leppie

+0

Sí, después de hacer autoflush = "true", la salida de rastreo viene en el archivo de destino, pero desde la línea: HttpContext.Current.Trace.Write (sID + "ID de rastreo"); no del System.Diagnostics.Trace. Y si elimino el atributo writeToDiagnosticsTrace = "true" de System.Web configSection, el trazo HttpContext tampoco funciona, lo que es obvio. – teenup

+0

ASP.NET muestra mensajes de rastreo cuando el rastreo está habilitado para una página. ('trace.axd TraceViewer'). Para enrutar mensajes Trace a una página web ASP.NET, debe agregar un objeto 'WebPageTraceListener'. Para ver los mensajes de seguimiento de ASP.NET y System.Diagnostics en un contexto fuera de una página ASP.NET, utilice un objeto 'TextWriterTraceListener' para escribir los mensajes de seguimiento en un archivo. – Kiquenet

Respuesta

5

Debe rastrear a un directorio en el que tenga permiso de escritura el servicio ASP.NET.

Lo que me gusta hacer es dejar el escucha predeterminado y ejecutar TechNet DebugView, que tiene la opción de guardar o iniciar sesión en un archivo.

+0

He configurado una carpeta para tener control total de la cuenta de la máquina Asp.Net, ahora se creó el archivo, pero está vacío y no contiene ningún resultado de rastreo. Tengo Trace = "True" en mi página y puedo ver el resultado del seguimiento en mi página en el navegador. – teenup

+0

Sí, después de hacer autoflush = "true", la salida de rastreo viene en el archivo de destino, pero desde la línea: HttpContext.Current.Trace.Write (sID + "id de rastreo"); no del System.Diagnostics.Trace. Y si elimino el atributo writeToDiagnosticsTrace = "true" de System.Web configSection, el trazo HttpContext tampoco funciona, lo que es obvio. – teenup

+0

Usted tiene el símbolo 'TRACE' definido en su compilación, ¿verdad? –

Cuestiones relacionadas