在控制台中输出调试信息

Edw*_*its 12 java debugging console swing

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

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

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

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

也许我应该只使用JUnit测试进行调试?我刚刚开始使用它,所以我对其功能有一个模糊的概念.

Sci*_*ion 17

如果您不打算使用专门的调试框架,它可以像以下一样简单:

if (Debugger.isEnabled())
    Debugger.log("message here");
Run Code Online (Sandbox Code Playgroud)

Debugger类只封装了println调用(如下所示):

public class Debugger{
    public static boolean isEnabled(){
        return true;
    }

    public static void log(Object o){
        System.out.println(o.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,当您想要进行制作时,或者您可以通过更改类中的一行来修改调试行为(或禁用它).


jek*_*edy 8

对Debugger类的一个小改进,使客户端更清洁:

public static void log(Object o){
    if(Debugger.isEnabled()) {
        System.out.println(o.toString());
    }           
}
Run Code Online (Sandbox Code Playgroud)

然后客户端只需要一行:

Debugger.log("....")
Run Code Online (Sandbox Code Playgroud)