Java内联调试代码

时间:2012-05-16 14:21:40

标签: java debugging

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

这是相当简单的,并且将具有所需的输出,以帮助我调试程序。据说这似乎很重要,因为我的生产代码中会有很多if(DEBUG)语句。我不太担心代码的效率,更多的是关于实际执行某些操作的语句与可用于调试的语句的可读性。

据我所知,对于大多数IDE,我可以简单地逐步完成代码以有效地为自己提供更多的手动调试选项,但我发现任何代码库都是充分迭代的,这种方法比倾倒东西更痛苦到控制台。我想另一种选择可能是使用具有DEBUG设置的日志框架,但我仍然觉得额外的日志记录说明就像将它们运送到控制台一样难看。

我有什么选择吗?他们的Java调试框架是否更加清洁?对于参考点,我想知道何时调用某些特定方法以及执行中不同点的各种对象的字符串表示。

提前致谢。

3 个答案:

答案 0 :(得分:1)

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

的功能非常强大

答案 1 :(得分:0)

您可以使用AspectJ来退出生产代码并使其更易于阅读。通过正确的切入点,您可能不需要编写几乎相同的调试代码。如果您花费大量时间进行调试,请考虑单元测试或更严格的开发方法。此外,永远不要捕捉异常并记录你应该扔的时间。

答案 2 :(得分:0)

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

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

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

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