如何在C#中添加(简单)跟踪?[关闭]


122

我想对我正在编写的C#应用​​程序进行一些跟踪。可悲的是,我永远无法真正记住它是如何工作的,并希望时不时地检查一下具有参考品质的教程。它应包括:

  • 添加App.config / Web.config内容以注册TraceListeners
  • 如何在调用应用程序中进行设置

您知道我们应该链接的超级教程吗?

编辑:格伦·斯拉文(Glenn Slaven)向我指出了正确的方向。将其添加到您的App.config / Web.config中<configuration/>

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

这将添加一个TextWriterTraceListener可以捕获您发送给所有内容的邮件Trace.WriteLine等等。

编辑: @DanEsparza指出,你应该使用Trace.TraceInformationTrace.TraceWarningTrace.TraceError代替Trace.WriteLine,因为它们允许你格式邮件的方法一样string.Format

提示:如果不添加任何侦听器,则仍可以使用SysInternals程序DebugView(Dbgview.exe)查看跟踪输出:http : //technet.microsoft.com/zh-cn/sysinternals/bb896647.aspx


4
我强烈建议使用Trace.TraceInformation和之类的东西代替WriteLine。这些成员使您可以将消息的格式设置为string.Format
Dan Esparza 2014年

Answers:



5

我关注了大约5个不同的答案以及上面的所有博客文章,但仍然有问题。我试图将一个侦听器添加到一些使用该TraceSource.TraceEvent(TraceEventType, Int32, String)方法进行跟踪的现有代码中,其中该TraceSource对象使用字符串进行初始化,从而使其成为“命名源”。对我来说,问题不是创建源和开关元素的有效组合以此源为目标。这是一个将记录到名为的文件的示例tracelog.txt。对于以下代码:

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

我成功管理了以下诊断配置的日志:

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

代码段不起作用。
有用的蜜蜂2016年

抱歉@usefulBee,它不是代码段,而是被自动标记为代码。这是配置代码,它将作为您App.config或Web.config的一部分,希望对您有所帮助。
肖恩

3

DotNetCoders上有一篇入门文章:http : //www.dotnetcoders.com/web/Articles/ShowArticle.aspx? article =50,他们讨论了如何在配置文件中设置开关以及如何编写代码,但是它已经很老了(2002年)。在CodeProject上还有另一篇文章:http : //www.codeproject.com/KB/trace/debugtreatise.aspx,但是年龄相同。CodeGuru在自定义TraceListeners上还有另一篇文章:http : //www.codeguru.com/columns/vb/article.php/c5611

我想不起来最近的文章,希望这里的其他人会有所帮助


第一个链接将转到
404。– Kcoder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.