我使用C#(使用VS IDE)进行开发.我对Debug/Trace语句感到困惑.
我们在哪里以及为何使用这些陈述?
我经常在其他开发人员的源代码中看到这些.
有人可以提供指针吗?
Mit*_*eat 21
Debug语句仅存在于Debug构建中.
跟踪语句存在于Debug和Release版本中.
将Debug和Trace语句放在要输出某些值的位置,以便进行调试或检查.
这篇MS支持文章可能很有用:如何在Visual C#中跟踪和调试
Trace类将消息路由到侦听器:用于接受跟踪消息并将其发送到适当输出设备的类.Trace.Listeners集合包含向系统注册的侦听器的列表.调用任何Trace输出方法将向所有已注册的侦听器发送消息.名为DebugTraceListener的类会自动添加到Listeners集合中,并将消息路由到
OutputDebugStringWin32 API函数.
SysInternals DebugView应用程序将捕获通过的任何输出OutputDebugString.
Ran*_*ica 19
Debug和Trace都用于输出除应用程序的正常错误记录之外的其他消息.输出是由程序员决定的.可以编写的典型事项是方法入口/出口,方法参数值,方法返回值,正在使用的配置信息,关键性能计时等.
Debug和Trace之间的主要区别在于,发布版本中存在Trace,而Debug不存在.我发现Trace更有用,因为它允许您获得有关应用程序在生产环境中运行的其他信息(假设您添加了Trace以开始).添加跟踪消息时要考虑的一件事是,如果出现棘手的生产问题,请考虑您希望访问的信息.
Debug和Trace都是有条件编译的.Debug(默认情况下)编译为调试版本,而Trace(默认情况下)编译为版本版本.条件编译由编译标志(对于Trace:/ d:TRACE)或预处理器指令(对于Trace:#define TRACE)确定.
好处是这些语句可以在开发过程中受益,但可以通过更改编译标志轻松删除生产版本.
产量
要获取Trace的输出,需要跟踪侦听器.有一个默认的跟踪侦听器(毫不奇怪)DefaultTraceListener.的DefaultTraceListener(通过的Win32发送跟踪消息共享存储器OutputDebugString方法).
好的,但你怎么看这些跟踪消息?
最简单的方法是运行程序来为您读取信息. DebugView是事实上的标准.几乎只是启动它,消息开始出现.
您还可以使用TextWriterTraceListener或将输出定向到其他位置EventLogTraceListener.
您还可以通过配置添加跟踪侦听器:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"type="System.Diagnostics.TextWriterTraceListener"initializeData="TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
如果您已经在使用日志记录提供程序(例如Enterprise Library,log4net),那么您可能希望使用他们的方法,因为他们几乎总是提供类似的条件日志记录功能.但是,它们可能无法提供与Assert或类似的功能WriteIf.
| 归档时间: |
|
| 查看次数: |
15050 次 |
| 最近记录: |