1

我在这里寻找一些最佳实践建议。我有一个库,我想将一些调试代码添加到(想想 System.out.println)中,只有在配置文件中设置了标志时才会执行。

这是相当微不足道的,并且在我进行过程中将具有帮助调试程序所需的输出。话虽这么说,我的生产代码周围会有很多 if(DEBUG) 语句,这似乎很繁重。我不太担心代码的效率,而更多的是关于实际执行某些操作的语句与仅用于调试的语句的可读性。

我知道对于大多数 IDE,我可以简单地单步执行代码以有效地为自己提供更多手动调试选项,但我发现对于任何足够迭代的代码库,这种方法比仅仅将东西转储到控制台更痛苦. 我想另一种选择可能是使用具有 DEBUG 设置的日志记录框架,但我仍然觉得额外的日志记录指令与将它们发送到控制台一样难看。

我在这里缺少任何选项吗?他们在 Java 中的调试框架是否使这个更干净?作为参考点,我想知道何时调用某些特定方法以及执行过程中不同点的各种对象的字符串表示形式。

提前致谢。

4

3 回答 3

1

我不太了解您的问题,但我仍然建议您使用日志框架,例如 log4j,它允许您选择将日志信息生成到文件、数据库或控制台。使用 system.out 功能强大得多。

于 2012-05-16T14:27:36.123 回答
0

您可以使用AspectJ保持退出生产代码并使其更易于阅读。有了正确的切入点,您可能也不需要编写几乎一样多的调试代码。如果您花费大量时间进行调试,请考虑进行单元测试或更规范的开发方法。此外,永远不要捕获异常并记录应该抛出的时间。

于 2012-05-16T14:35:25.453 回答
0

在 IntelliJ IDEA 中,您可以将记录消息或计算表达式的断点添加到控制台。当它到达断点时,它会简单地记录并继续执行。

我经常将它与条件断点结合使用,作为调试语句,并更清楚地了解我的代码在调试过程中正在做什么。

很酷的是您不必修改源代码,因为日志记录语句是在运行时由调试器添加的。

我认为 Eclipse 可以让你做同样的事情。

于 2013-01-07T12:57:51.350 回答