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.