2008-08-26 14 views
120

Quiero introducir un poco de seguimiento a una aplicación C# que estoy escribiendo. Tristemente, nunca puedo recordar cómo funciona realmente y me gustaría tener un tutorial con cualidades de referencia para verificar de vez en cuando. Debe incluir:¿Cómo agregar el rastreo (simple) en C#?

  • App.config/Web.config cosas para añadir TraceListeners registran
  • cómo configurarlo en la aplicación de llamada

¿Sabe usted la súper tutorial que deberíamos ¿enlace a?

EDIT: Glenn Slaven me apuntó en la dirección correcta. Agregue esto a su App.config/Web.config en el interior <configuration/>:

<system.diagnostics> 
    <trace autoflush="true"> 
     <listeners> 
     <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" 
      initializeData="trace.log" /> 
     </listeners> 
    </trace> 
</system.diagnostics> 

Esto añadirá un TextWriterTraceListener que captura todo lo que envíe a la Trace.WriteLine etc.

EDIT: @DanEsparza señaló que debe usar Trace.TraceInformation, Trace.TraceWarning y Trace.TraceError en lugar de Trace.WriteLine, ya que le permiten formatear mensajes del mismo modo que string.Format.

Consejo: Si no se agrega ningún oyentes, entonces todavía se puede ver el resultado de seguimiento con el programa SysInternals DebugView (Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

+4

Le recomiendo usar 'Trace.TraceInformation' y similares en lugar de WriteLine.Esos miembros te permiten formatear tus mensajes como 'string.Format'. –

Respuesta

3

DotNetCoders tiene un artículo de arranque en él: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50, hablan de cómo configurar los interruptores en el archivo de configuración & la forma de escribir el código, pero es bastante viejo (2002). Hay otro artículo sobre CodeProject: http://www.codeproject.com/KB/trace/debugtreatise.aspx pero tiene la misma edad. CodeGuru tiene otro artículo sobre TraceListeners personalizados: http://www.codeguru.com/columns/vb/article.php/c5611

No puedo pensar en ninguno de los artículos más recientes, es de esperar que alguien aquí tendrá algo

5

Seguí alrededor de 5 respuestas diferentes, así como todas las publicaciones de blog anteriores y todavía tenía problemas. Intentaba agregar un oyente a algún código existente que estaba rastreando usando el método TraceSource.TraceEvent(TraceEventType, Int32, String) donde el objeto TraceSource se inicializó con una cadena, lo que lo convirtió en una 'fuente nombrada'. Para mí, el problema no fue crear una combinación válida de elementos de origen y conmutación para apuntar a esta fuente. Aquí hay un ejemplo que se registrará en un archivo llamado tracelog.txt. Para el siguiente código:

TraceSource source = new TraceSource("sourceName"); 
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message"); 

que lograron con éxito para conectarse con el siguiente diagnóstico config:

<system.diagnostics> 
    <sources> 
     <source name="sourceName" switchName="switchName"> 
     <listeners> 
      <add 
       name="textWriterTraceListener" 
       type="System.Diagnostics.TextWriterTraceListener" 
       initializeData="tracelog.txt" /> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name="switchName" value="Verbose" /> 
    </switches> 
    </system.diagnostics> 
+0

El fragmento de código no funciona. – usefulBee

+0

Disculpa @usefulBee, no estaba destinado a ser un fragmento de código, se marcó automáticamente como código. Este es un código de configuración que sería parte de su App.config o Web.config, espero que eso ayude. – Shaun

Cuestiones relacionadas