如何在 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.TraceInformationTrace.TraceWarningTrace.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# 中添加(简单)跟踪? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何知道父子 C# 列表中的深度计数 [关闭]

如何在 C# 中跟踪代码执行

如何从托管 C# 代码跟踪 CRT 调试内存泄漏输出的来源?

如何在 Datagrid WPF c# 中添加复选框

如何在 C# 中创建 trie [关闭]

如何使现有分支跟踪远程分支[关闭]