我想介绍一些我正在编写的C#应用程序的跟踪.可悲的是,我永远不会真的记得它是如何工作的,并且希望有一个具有参考品质的教程来检查它们.它应该包括:
你知道我们应该链接到的超级教程吗?
编辑:格伦斯拉文指出我正确的方向.将其添加到您的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>
Run Code Online (Sandbox Code Playgroud)
这将添加一个TextWriterTraceListener将捕获您发送到的所有内容Trace.WriteLine等.
编辑: @DanEsparza指出你应该使用Trace.TraceInformation,Trace.TraceWarning而Trace.TraceError不是Trace.WriteLine,因为它们允许你以相同的方式格式化消息string.Format.
提示:如果您不添加任何侦听器,那么您仍然可以使用SysInternals程序DebugView(Dbgview.exe)查看跟踪输出:http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
小智 16
我写了一篇关于使用Trace Listener的简短文章 - 也许它会有所帮助,特别是对于初学者 - http://www.daveoncsharp.com/2009/09/create-a-logger-using-the-trace-listener -in-CSHARP /
我跟着大约5个不同的答案以及上面的所有博客帖子,但仍然有问题.我试图为一些现有代码添加一个监听器,该代码使用该TraceSource.TraceEvent(TraceEventType,?Int32,?String)方法进行跟踪,其中TraceSource对象初始化为字符串,使其成为"命名源".对我来说,问题不在于创建源和切换元素的有效组合来定位此源.这是一个将记录到名为的文件的示例tracelog.txt.对于以下代码:
TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");
Run Code Online (Sandbox Code Playgroud)
我成功地使用以下诊断配置进行了记录:
<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>
Run Code Online (Sandbox Code Playgroud)
DotNetCoders 有一篇入门文章:http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx ?article=50 。他们谈论如何在配置文件中设置开关以及如何编写代码,但它已经很旧了(2002 年)。
CodeProject 上还有另一篇文章:关于使用调试和跟踪类的论文,包括异常处理,但它是同一时代的。
CodeGuru 还有另一篇关于自定义 TraceListener 的文章:实现自定义 TraceListener
| 归档时间: |
|
| 查看次数: |
116013 次 |
| 最近记录: |