C# 什么&x2019;调试类和跟踪类之间的区别是什么?

C# 什么&x2019;调试类和跟踪类之间的区别是什么?,c#,winforms,debugging,C#,Winforms,Debugging,我试图在我们的一个应用程序中编写更好的错误处理和调试逻辑。有人能解释一下调试类和跟踪类之间的区别吗?文档看起来非常相似。我希望将这些类与NLog结合使用,以改进我们的调试工作。调试在调试期间使用。跟踪正在写入日志文件。这有点像日志记录。两者非常相似,但跟踪用于长期保留,调试用于实时调试。Debug和Trace类的方法非常相似。主要区别在于对Debug类的调用通常只包括在调试构建中,而跟踪则包括在所有构建(调试和发布)中。您可以通过编译器标志DEBUG和TRACE来控制这一点。如果查看这两种方法的

我试图在我们的一个应用程序中编写更好的错误处理和调试逻辑。有人能解释一下调试类和跟踪类之间的区别吗?文档看起来非常相似。我希望将这些类与NLog结合使用,以改进我们的调试工作。

调试在调试期间使用。跟踪正在写入日志文件。这有点像日志记录。两者非常相似,但跟踪用于长期保留,调试用于实时调试。
Debug
Trace
类的方法非常相似。主要区别在于对
Debug
类的调用通常只包括在调试构建中,而跟踪则包括在所有构建(调试和发布)中。您可以通过编译器标志DEBUG和TRACE来控制这一点。如果查看这两种方法的文档,您会注意到注释方法的
ConditionalAttribute
。这将导致仅当定义了适当的编译器标志时,方法调用才会包含在二进制文件中。您可以定义自己的编译器标志,并以类似的方式将其与
ConditionalAttribute
结合使用。请注意,如果使用此方法,则不会从已编译的二进制文件中删除这些方法。将修改调用站点以删除方法调用。

有关此问题的另一个对话