在控制台中输出调试信息

2022-09-03 18:18:00

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

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

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

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

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


答案 1

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

if (Debugger.isEnabled())
    Debugger.log("message here");

调试器类只封装 println 调用(如下所示):

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

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

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


答案 2

对调试器类的一个小改进,使客户端更清晰一些:

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

然后客户端只需要一行:

Debugger.log("....")