我试图在我们的一个应用程序中编写更好的错误处理和调试逻辑。有人可以解释Debug和Trace类之间的区别吗?文档看起来非常相似。我想将这些类与NLog结合使用,以改善我们的调试工作。
答案 0 :(得分:18)
Debug
和Trace
类的方法非常相似。主要区别在于对Debug
类的调用通常仅包含在Debug构建中,并且Trace包含在所有构建中(Debug和Release)。您可以通过编译器标志DEBUG和TRACE来控制它。如果您查看两者的文档,您会注意到ConditionalAttribute
注释方法。这会导致仅在定义了适当的编译器标志时才将方法调用包含在二进制文件中。您可以定义自己的编译器标志,并以类似的方式将其与ConditionalAttribute
结合使用。请注意,如果使用此方法,则不会从已编译的二进制文件中删除这些方法。修改了呼叫站点以删除方法调用。
答案 1 :(得分:6)
在调试期间使用Debug。 Trace正在写入日志文件。这有点像伐木。两者都非常相似,但需要跟踪长期保留,调试以进行实时调试。