Debug类和Trace类有什么区别?

21

我正在尝试在我们的一个应用程序中编写更好的错误处理和调试逻辑。 有人可以解释一下Debug和Trace类之间的区别吗?文档看起来非常相似。我想与NLog一起使用这些类来改善我们的调试工作。

我正尝试在我们的一个应用程序中编写更好的错误处理和调试逻辑。 有人可以解释一下Debug和Trace类之间的区别吗?文档看起来非常相似。我想与NLog一起使用这些类来改善我们的调试工作。

1
关于这个问题的另一个讨论:https://dev59.com/TXVC5IYBdhLWcg3wz0h9 - Max Kilovatiy
2个回答

18
DebugTrace类有非常相似的方法。主要区别在于调用Debug类的方法通常只包含在Debug版本中,而Trace则包含在所有版本中(Debug和Release)。您可以通过编译器标志DEBUG和TRACE来控制这一点。如果您查看两者的文档,您会注意到使用ConditionalAttribute注释了这些方法。这导致方法调用仅在定义适当的编译器标志时才包含在二进制文件中。您可以定义自己的编译器标志,并与ConditionalAttribute结合使用类似的方式。注意,如果您使用此功能,则这些方法不会从编译后的二进制文件中删除,但是会修改呼叫站点以删除方法调用。

8

Debug用于调试过程中。Trace是写入日志文件的过程,类似于记录。两者非常相似,但跟踪是为了长期保留,调试是为了实时调试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接