如何在 C# 中添加(简单)跟踪? [关闭]
Posted
技术标签:
【中文标题】如何在 C# 中添加(简单)跟踪? [关闭]【英文标题】:How can I add (simple) tracing in C#? [closed] 【发布时间】:2010-09-06 20:33:39 【问题描述】:我想向我正在编写的 C# 应用程序介绍一些跟踪。可悲的是,我永远无法真正记住它是如何工作的,并且想要一个具有参考质量的教程来不时检查。它应该包括:
为注册 TraceListeners 添加的 App.config / Web.config 内容 如何在调用应用程序中进行设置你知道我们应该链接到的 über 教程吗?
Glenn Slaven 为我指明了正确的方向。将此添加到 <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
) 看到跟踪输出:
【问题讨论】:
我强烈推荐使用Trace.TraceInformation
等代替WriteLine。这些成员允许您格式化您的消息,例如string.Format
。
【参考方案1】:
我遵循了大约五个不同的答案以及之前答案中的所有博客文章,但仍然遇到问题。我试图向使用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>
【讨论】:
代码 sn-p 不起作用。 道歉@usefulBee,它不是一个代码sn-p,它被自动标记为代码。这是您的 App.config 或 Web.config 的一部分的配置代码,希望对您有所帮助。【参考方案2】:DotNetCoders 有一篇关于它的入门文章:http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50。他们谈论如何在配置文件中设置开关以及如何编写代码,但它已经很老了(2002)。
CodeProject上还有一篇文章:A Treatise on Using Debug and Trace classes, including Exception Handling,不过是同龄的。
CodeGuru 有另一篇关于自定义 TraceListeners 的文章:Implementing a Custom TraceListener
【讨论】:
第一个链接是 404。 第一个链接断开 (404)。以上是关于如何在 C# 中添加(简单)跟踪? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章