14

我正在做一个Java应用程序,它将使用swing用户界面。它会要求用户通过填写​​表格来指定一些设置,然后处理它们并在./output/目录中生成一些文件。

在开发过程中,我想在控制台输出一些技术信息,使用System.out.println()方法。

完成开发后是否需要删除所有这些控制台输出?

如果是,在开发过程中显示调试信息以便在生产前轻松删除它的最佳方法是什么?

也许我应该只将JUnit测试用于调试目的?我刚刚开始使用它,所以我对它的功能有一个模糊的概念。

4

2 回答 2

19

如果您不打算使用专门的调试框架,它可能很简单:

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());
    }
}

这样,当您想投入生产时,或者您可以通过更改类中的一行来修改调试行为(或禁用它)。

于 2012-08-12T15:19:33.050 回答
9

对 Debugger 类的小改进,使客户端更简洁:

public static void log(Object o){
    if(Debugger.isEnabled()) {
        System.out.println(o.toString());
    }           
}

那么客户端只需要一行:

Debugger.log("....")
于 2013-08-15T22:48:02.207 回答