Java:控制包中的详细性(诊断消息传递)级别的建议方法是什么?

Java:控制包中的详细性(诊断消息传递)级别的建议方法是什么?,java,global,diagnostics,Java,Global,Diagnostics,我对Java相当陌生,因此我正在寻找一种控制包在执行过程中产生的诊断输出量的好方法 假设我有一个集成到不同程序中的包。为简单起见,假设我希望在执行期间不生成诊断输出,或者生成一些将发送到System.out的输出。问题是什么是最优雅、最可靠的方法 我是否可以在包内创建一个全局布尔变量,该变量的值将在调用该包的应用程序中的一个或多个点上设置,然后我将在包中要生成诊断输出的每个点上检查其值。这样,我就不必将控制参数传递到包中每个类的每个方法中 有更好的办法吗 谢谢 使用许多可用的日志记录包中的任何一

我对Java相当陌生,因此我正在寻找一种控制包在执行过程中产生的诊断输出量的好方法

假设我有一个集成到不同程序中的包。为简单起见,假设我希望在执行期间不生成诊断输出,或者生成一些将发送到System.out的输出。问题是什么是最优雅、最可靠的方法

我是否可以在包内创建一个全局布尔变量,该变量的值将在调用该包的应用程序中的一个或多个点上设置,然后我将在包中要生成诊断输出的每个点上检查其值。这样,我就不必将控制参数传递到包中每个类的每个方法中

有更好的办法吗


谢谢

使用许多可用的日志记录包中的任何一个,包括java.util.logging或。然后,您可以在执行时非常轻松地逐个包地配置它。这还意味着,虽然您可以将日志定向到
System.out
,但您也可以使用更复杂的选项。

您应该看看日志记录。这是一个例子。避免在代码中完全使用
System.out.println
s

使用log4j,您可以配置如下内容,关闭包
com.foo.mypackage
生成的所有日志输出

log4j.logger.com.foo.mypackage=OFF

一旦过了这个阶段,我建议您看看和。

您可以使用在代码中插入日志语句,并根据需要打开或关闭它们。

看看java的您应该使用日志记录。是开发项目时非常重要的一个方面。我建议您查看以下提示:

通常在普通和大型java项目中,使用日志框架,例如Log4j