我正在开发一个使用 swing
用户界面的 Java
应用程序。它会要求用户通过填写表单来指定一些设置,然后处理并在 ./output/
目录下生成一些文件。
在开发过程中,我想使用 System.out.println()
方法在控制台输出一些技术信息。
我需要在完成开发后删除所有这些控制台输出吗?
如果是,那么在开发过程中显示调试信息的最佳方法是什么,以便在生产前轻松删除它?
也许我应该只使用 JUnit
测试来进行调试?但我刚刚开始接触,对其功能还不够了解。
我正在开发一个使用 swing
用户界面的 Java
应用程序。它会要求用户通过填写表单来指定一些设置,然后处理并在 ./output/
目录下生成一些文件。
在开发过程中,我想使用 System.out.println()
方法在控制台输出一些技术信息。
我需要在完成开发后删除所有这些控制台输出吗?
如果是,那么在开发过程中显示调试信息的最佳方法是什么,以便在生产前轻松删除它?
也许我应该只使用 JUnit
测试来进行调试?但我刚刚开始接触,对其功能还不够了解。
如果你不打算使用专门的调试框架,那么这可能很容易:
if (Debugger.isEnabled())
Debugger.log("message here");
Debugger类只是封装了println调用(像这样):
public class Debugger{
public static boolean isEnabled(){
return true;
}
public static void log(Object o){
System.out.println(o.toString());
}
}
那么当您想要进入生产环境时,或者您可以通过更改类中的一行来修改调试行为(或禁用调试)。
为了使客户端更加简洁,对Debugger类进行了小幅改进:
public static void log(Object o){
if(Debugger.isEnabled()) {
System.out.println(o.toString());
}
}
Debugger.log("....")
log()
之外检查调试是否启用可以节省这些资源(分支仍然会发生)。或者,您可以编写一个包装字符串格式化的log()
方法。 - Yuval