如何在C#中添加(简单)跟踪?
我想介绍一些我正在写的C#应用程序的跟踪。 可悲的是,我永远不会记得它是如何工作的,并希望有参考质量的教程时不时的检查。 它应该包括:
- 添加注册TraceListeners的App.config / Web.config的东西
- 如何在调用应用程序中设置它
你知道我们应该链接到的超级教程吗?
编辑:格伦·斯拉文指出我在正确的方向。 把它添加到你的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.TraceInformation
, Trace.TraceWarning
和Trace.TraceError
而不是Trace.WriteLine
,因为它们允许您以与string.Format
相同的方式格式化消息。
提示:如果不添加任何侦听器,则仍然可以使用Dbgview.exe
程序DebugView( Dbgview.exe
)查看跟踪输出: http : Dbgview.exe
我写了一篇关于使用Trace Listener的简短文章 – 可能会对初学者有一定的帮助 – http://www.daveoncsharp.com/2009/09/create-a-logger-using-the-trace-listener -in-CSHARP /
我跟着5个不同的答案以及上面的所有博客post,仍然有问题。 我试图添加一个侦听器到一些现有的代码,使用TraceSource.TraceEvent(TraceEventType, Int32, String)
方法进行跟踪TraceSource.TraceEvent(TraceEventType, Int32, String)
其中TraceSource
对象使用一个string作为“命名源”来初始化。 对于我来说,这个问题并没有创造一个有效的源和开关元素组合来定位这个源。 以下是一个将logging到名为tracelog.txt
的文件的示例。 对于下面的代码:
TraceSource source = new TraceSource("sourceName"); source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");
我成功设法使用以下诊断configuration进行日志logging:
<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>
DotNetCoders有一篇关于它的初学者文章: http : //www.dotnetcoders.com/web/Articles/ShowArticle.aspx? article = 50 ,他们讨论如何在configuration文件中设置开关以及如何编写代码,但它是相当老(2002年)。 还有另一篇关于CodeProject的文章: http : //www.codeproject.com/KB/trace/debugtreatise.aspx,但是它的年龄相同。 CodeGuru有另一篇关于自定义TraceListeners的文章: http : //www.codeguru.com/columns/vb/article.php/c5611
我想不出任何最近的文章,希望这里的其他人能有一些东西