¿Cómo agregar el seguimiento (simple) en C #? [cerrado]


122

Quiero presentar un seguimiento de una aplicación C # que estoy escribiendo. Lamentablemente, nunca puedo recordar cómo funciona y me gustaría un tutorial con cualidades de referencia para verificar de vez en cuando. Debe incluir:

  • App.config / Web.config cosas para agregar para registrar TraceListeners
  • cómo configurarlo en la aplicación de llamada

¿Conoces el tutorial de uber al que deberíamos vincularnos?

EDITAR: Glenn Slaven me señaló en la dirección correcta. Agregue esto a su App.config / Web.config dentro <configuration/>:

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

Esto agregará un TextWriterTraceListenermensaje que capturará todo lo que envíes, Trace.WriteLineetc.

EDITAR: @DanEsparza señaló que debe usar Trace.TraceInformation, Trace.TraceWarningy en Trace.TraceErrorlugar de Trace.WriteLine, ya que le permiten formatear los mensajes de la misma manera que string.Format.

Consejo: Si no agrega ningún oyente, aún puede ver la salida de rastreo con el programa SysInternals DebugView ( Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx


44
Recomiendo usar Trace.TraceInformationy similares en lugar de WriteLine. Esos miembros le permiten formatear sus mensajes como string.Format.
Dan Esparza

Respuestas:



5

Seguí alrededor de 5 respuestas diferentes, así como todas las publicaciones de blog anteriores y aún tuve problemas. Intenté agregar un oyente a algún código existente que se estaba rastreando usando el TraceSource.TraceEvent(TraceEventType, Int32, String)método donde el TraceSourceobjeto se inicializó con una cadena que lo convertía en una 'fuente con nombre'. Para mí, el problema no era crear una combinación válida de fuente y elementos de 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");

Logré iniciar sesión con éxito con la siguiente configuración de diagnóstico:

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

El fragmento de código no funciona.
útilAbe

Disculpas @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 formaría parte de su App.config o Web.config, espero que ayude.
Shaun

3

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

No puedo pensar en ningún artículo más reciente, espero que alguien más aquí tenga algo


El primer enlace va a un 404.
Kcoder
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.