Debug类和Trace类有什么区别?

Gra*_*per 20 c# debugging winforms

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

Mik*_*ray 18

DebugTrace班有非常相似的方法.主要区别在于对Debug类的调用通常仅包含在Debug构建中,并且Trace包含在所有构建中(Debug和Release).您可以通过编译器标志DEBUG和TRACE来控制它.如果你查看两者的文档,你会注意到ConditionalAttribute方法的注释.这会导致仅在定义了适当的编译器标志时才将方法调用包含在二进制文件中.您可以定义自己的编译器标志,并ConditionalAttribute以类似的方式结合使用它.请注意,如果使用此方法,则不会从已编译的二进制文件中删除这些方法.修改调用站点以删除方法调用.


ief*_*fpw 6

在调试期间使用调试.Trace正在写入日志文件.这有点像伐木.两者都非常相似,但需要跟踪长期保留,调试实时调试.