Como adicionar rastreamento (simples) em C #? [fechadas]


122

Quero introduzir alguns rastreamentos em um aplicativo C # que estou escrevendo. Infelizmente, nunca consigo me lembrar de como funciona e gostaria de um tutorial com qualidades de referência para verificar de vez em quando. Deve incluir:

  • Material App.config / Web.config a ser adicionado ao registro de TraceListeners
  • como configurá-lo no aplicativo de chamada

Você conhece o tutorial uber ao qual devemos vincular?

Edição: Glenn Slaven me apontou na direção certa. Adicione isso ao seu 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>

Isso adicionará um TextWriterTraceListenerque captura tudo o que você envia, Trace.WriteLineetc.

EDIT: @DanEsparza apontou que você deve usar Trace.TraceInformation, Trace.TraceWarninge Trace.TraceErrornão em vez disso Trace.WriteLine, pois eles permitem que você formate as mensagens da mesma maneira que string.Format.

Dica: Se você não adicionar nenhum ouvinte, ainda poderá ver a saída de rastreamento com o programa SysInternals DebugView ( Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx


4
Eu recomendo o uso Trace.TraceInformatione similares em vez do WriteLine. Esses membros permitem que você formate suas mensagens como string.Format.
— Dan Esparza

Respostas:



5

Eu segui cerca de 5 respostas diferentes, bem como todas as postagens acima, e ainda tinha problemas. Eu estava tentando adicionar um ouvinte a algum código existente que estava rastreando usando o TraceSource.TraceEvent(TraceEventType, Int32, String)método em que o TraceSourceobjeto foi inicializado com uma string, tornando-o uma 'fonte nomeada'. Para mim, o problema não era criar uma combinação válida de elementos de origem e de opção para segmentar essa fonte. Aqui está um exemplo que fará logon em um arquivo chamado tracelog.txt. Para o seguinte código:

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

Consegui logar com sucesso com a seguinte configuração 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>

O snippet de código não funciona.
— usar o seguinte código

Desculpas @usefulBee, não era para ser um trecho de código, era automaticamente marcado como código. Este é o código de configuração que faria parte do seu App.config ou Web.config, espero que ajude.
— Shaun

3

O DotNetCoders possui um artigo inicial: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 , eles falam sobre como configurar os comutadores no arquivo de configuração e como escrever o código, mas é bem antigo (2002). Há outro artigo no CodeProject: http://www.codeproject.com/KB/trace/debugtreatise.aspx, mas é da mesma idade. O CodeGuru tem outro artigo sobre TraceListeners personalizados: http://www.codeguru.com/columns/vb/article.php/c5611

Não consigo pensar em nenhum artigo mais recente, espero que alguém aqui tenha algo


Primeira ligação está indo para um 404.
— Kcoder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.