我想介绍一些对我正在编写的C#应用程序的跟踪。可悲的是,我永远不能真正记住它是如何工作的,我想要一个有参考价值的教程来不时地检查一下。它应该包括:
为注册TraceListeners
您知道我们应该链接到的über教程吗?
格伦·斯莱文给我指出了正确的方向。将此代码添加到<configuration/>
中的App.config/Web.config中
<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
)查看跟踪输出:
发布于 2016-01-27 18:36:57
我跟踪了大约五个不同的答案,以及之前答案中的所有博客帖子,但仍然存在问题。我试图向一些使用TraceSource.TraceEvent(TraceEventType, Int32, String)
方法进行跟踪的现有代码中添加一个侦听器,在该方法中,TraceSource
对象是用一个字符串初始化的,使其成为一个“指名源”。
对我来说,问题不是创建一个有效的source和switch元素组合来定位这个源。下面是一个将记录到名为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>
发布于 2008-08-26 09:53:13
DotNetCoders有一篇关于它的入门文章:http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50。他们讨论了如何在配置文件中设置交换机以及如何编写代码,但这是相当古老的(2002)。
在CodeProject上还有另一篇文章:,但它的年龄是一样的。
CodeGuru有另一篇关于定制TraceListeners的文章:
https://stackoverflow.com/questions/27610
复制相似问题