web-dev-qa-db-ja.com

コンソールにデバッグ情報を出力する

私はJavaユーザーインターフェイスを使用するswingアプリケーションを実行しています。フォームに入力していくつかの設定を指定するようユーザーに要求し、それらを処理して_./output/_ディレクトリにいくつかのファイルを生成します。

開発プロセス中に、System.out.println()メソッドを使用して、技術情報をコンソールに出力したいと思います。

開発を終了するときに、これらのコンソール出力をすべて削除する必要がありますか?

はいの場合、開発プロセス中にデバッグ情報を表示して、本番前に簡単に削除するための最良の方法は何ですか?

多分私はデバッグ目的のためにJUnitテストだけを使うべきですか?私はそれを始めたばかりなので、その機能について漠然と考えています。

12

専用のデバッグフレームワークを使用しない場合は、次のように簡単です。

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

このようにして、本番環境に移行したい場合、またはクラスの1行を変更してデバッグの動作を変更(または無効化)することができます。

17
Science_Fiction

Debuggerクラスを少し改善して、クライアントを少しきれいにします。

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

次に、クライアント側には1行だけ必要です。

Debugger.log("....")
7
jekennedy