Java 在控制台中输出调试信息

Java 在控制台中输出调试信息,java,swing,debugging,console,Java,Swing,Debugging,Console,我正在做一个Java应用程序,它将使用swing用户界面。它将要求用户通过填写表单来指定一些设置,然后处理它们并在/output/目录中生成一些文件 在开发过程中,我想使用System.out.println()方法在控制台中输出一些技术信息 当我完成开发时,是否需要删除所有这些控制台输出 如果是,那么在开发过程中显示调试信息的最佳方式是什么,以便在生产之前轻松删除调试信息 也许我应该只使用JUnit测试进行调试?我才刚开始,所以我对它有一个模糊的概念​​它的功能。如果您不打算使用专门的调试框架

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

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

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

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


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

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

if (Debugger.isEnabled())
    Debugger.log("message here");
调试器类只封装println调用(如下所示):


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

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

public static void log(Object o){
    if(Debugger.isEnabled()) {
        System.out.println(o.toString());
    }           
}
那么客户端只需要一行代码:

Debugger.log("....")

是为了帮助您,它包含了许多特性,您可以在该链接中看到:-)在某些情况下,Java日志可能是better@Siorus你能简单地解释一下吗?您所说的Java日志记录是什么意思?如果您需要诸如:DB连接启动/停止/查询、捕获的卓越选项等信息,您可以使用这些信息,谢谢,我可能最好尝试一些调试框架,如您所述。:)我试过了,但它说
非静态方法调试器不能从静态内容访问
我认为这不是一个更好的解决方案。调试消息字符串通常需要格式化,即使在禁用调试时也需要CPU时间。在调用
log()
之外检查调试会保存该值(无论如何都会发生分支)。或者,您可以使用一个包装字符串格式的
log()
方法。
Debugger.log("....")