我想对我正在编写的C#应用??程序进行一些跟踪。可悲的是,我永远无法真正记住它是如何工作的,并且希望时不时地检查一下具有参考品质的教程。它应包括:
-
添加App.config / Web.config内容以注册TraceListeners
-
如何在调用应用程序中进行设置
您知道我们应该链接的超级教程吗?
编辑:格伦·斯拉文(Glenn Slaven)向我指出了正确的方向。将其添加到中的App.config / Web.config中:
1 2 3 4 5 6 7 8
| <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.TraceInformation,Trace.TraceWarning和Trace.TraceError而不是Trace.WriteLine,因为它们允许您格式化与string.Format相同的消息格式。
提示:如果不添加任何侦听器,则仍可以使用SysInternals程序DebugView(Dbgview.exe)查看跟踪输出:http://technet.microsoft.com/zh-cn/sysinternals/bb896647.aspx
我写了一篇有关使用跟踪侦听器的简短文章-也许会对某些人有帮助,特别是对于初学者-http://www.daveoncsharp.com/2009/09/create-a-logger-using-the-trace-listener -in-csharp /
我关注了大约5个不同的答案以及上面的所有博客文章,但仍然有问题。我试图在使用TraceSource.TraceEvent(TraceEventType,?Int32,?String)方法跟踪的某些现有代码中添加一个侦听器,其中TraceSource对象是使用使它成为"命名源"的字符串初始化的。对我来说,问题不是创建源和切换元素的有效组合以此源为目标。这是将登录到名为tracelog.txt的文件的示例。对于以下代码:
1 2
| TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1,"Trace message"); |
我成功管理了以下诊断配置的日志:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <system.diagnostics>
<sources>
<source name="sourceName" switchName="switchName">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="tracelog.txt" />
</listeners>
</source>
</sources>
<switches>
</switches>
</system.diagnostics> |
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
我想不起来最近的文章,希望这里的其他人会有所帮助