2012-05-16 74 views
1

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

这是相当微不足道的,并将有我期望的帮助调试程序所需的输出。话虽如此,似乎有很多交流,我会有很多if(DEBUG)语句浮动在我的生产代码周围。我并不担心代码的效率,更多的是关于实际执行某些操作的语句与仅用于调试的语句的可读性。

我知道,对于大多数IDE,我可以简单地通过代码来有效地给自己一个更手动的调试选项,但是我发现任何代码库都足够迭代,这种方法比只是倾销更加痛苦事情到控制台。我想另一个选择是使用一个具有DEBUG设置的日志框架,但我仍然觉得额外的日志记录指令会像将它们传送到控制台一样丑陋。

我在这里找不到任何选项吗?他们的Java调试框架是否使得这个更清洁?对于参考点,我想知道何时调用某些特定方法以及执行过程中不同点处的各种对象的字符串表示。

在此先感谢。

回答

0

您可以使用AspectJ来注销生产代码并使其更容易阅读。通过正确的切点,您可能不需要编写几乎尽可能多的调试代码。如果您花费大量时间进行调试,请考虑进行单元测试或更严谨的开发方法。此外,从来没有发现异常并记录下你何时应该投掷。

1

我不太明白你的问题,但我还是建议你使用日志框架,比如log4j,它允许你选择生成你的日志信息到文件,数据库或控制台。使用system.out非常强大。

+0

如果代码可读性非常严重,他可以使用方面日志记录。 –

+0

+1用于推荐日志框架 – michael667

0

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

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

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

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