我是Java的新手,所以我正在寻找一种控制程序包在执行过程中产生的诊断输出量的好方法。
假设我有一个可以集成到不同程序中的软件包。为简单起见,我们假设我想在执行期间不产生诊断输出或产生一些将发送到System.out的输出。问题是这样做最优雅,最可靠的方式是什么。
我可以在包中创建一个全局布尔变量,其值将设置在调用此包的应用程序中的一个或多个点,然后我会在包中我想要生成诊断的每个点检查它的值输出。这样我就不必将控制参数传递给包中每个类的每个方法。
有更好的方法吗?
谢谢!
答案 0 :(得分:1)
使用任何可用的日志包,包括java.util.logging或log4j。然后,您可以在逐个包的基础上非常轻松地在执行时配置。这也意味着,当您可以将日志指向System.out
时,您也可以使用更复杂的选项。
答案 1 :(得分:1)
查看java的logging facilities
答案 2 :(得分:0)
你应该看一下日志。 Log4j就是一个例子。避免在代码中完全使用System.out.println
。
使用log4j,您可以配置类似下面的内容,这将关闭包com.foo.mypackage
生成的所有日志记录输出。
log4j.logger.com.foo.mypackage=OFF
答案 3 :(得分:0)
您可以使用Log4J在代码中插入日志记录语句,并根据需要打开或关闭它们。
答案 4 :(得分:0)
您应该使用日志记录。在开发项目时是一个非常重要的方面。我建议你查看这个提示:
http://javarevisited.blogspot.de/2011/05/top-10-tips-on-logging-in-java.html
通常在普通和大型Java项目中,使用日志框架,例如Log4j