web-dev-qa-db-ja.com

System.out.printlnの出力を別の色で表示する

デバッグする大きなプロジェクトがあり、Eclipseの出力でSystem.out.printlnメソッドを変更するために使用できる方法があるかどうか疑問に思いました。

例えば ​​:

System.out.println("I want this to be red");
System.out.println("I want this to be blue");
System.out.println("I want this to be yellow");
System.out.println("I want this to be Magenta");

読みやすくするために。

EDIT

sysoutで私はこれを持っています sysout

syserrで私はこれを持っています syserr

9
Wassim AZIRAR

Eclipse内では、最も簡単なアプローチは、赤にしたい行にSystem.err.printlnを使用することです。これがデフォルトだと思います。 ([設定]-> [実行/デバッグ]-> [コンソール]で変更できます)。

もちろん、realコンソールで実行している場合、その違いは表示されませんが、thinkEclipseコンソールはANSIカラーエスケープシーケンスなどをサポートしています。

編集:Windowsコンソールの場合、 ANSIエスケープシーケンス が機能することを期待します。 hugelyポータブルではありませんが、それが問題にならない場合は、エスケープシーケンスを適切にカプセル化するクラスを作成するだけで、次のように呼び出すことができます。

ansiConsole.printRed("sample line in red");
ansiConsole.printBlue("sample line in blue");

(私はおそらく、これらのメソッドを、各呼び出し後に「現在の」色に戻すようにします。)

編集:コメントに記載されているように、 Jansi ライブラリはすでに存在するため、それを使用することをお勧めします。上記の方法はありませんが、それでもあなたが望むことをするでしょう...

21
Jon Skeet

次のコードを参照してください。ANSIカラーコードについては、このリンクも参照してください。 http://en.wikipedia.org/wiki/ANSI_escape_code

public class ColourConsoleDemo {
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("\033[0m BLACK");
        System.out.println("\033[31m RED");
        System.out.println("\033[32m GREEN");
        System.out.println("\033[33m YELLOW");
        System.out.println("\033[34m BLUE");
        System.out.println("\033[35m Magenta");
        System.out.println("\033[36m CYAN");
        System.out.println("\033[37m WHITE");
    }   
}
9
Sachin Gaykar

JansiJansi's Github )をご覧ください

Jansiは小さなJavaライブラリであり、ANSIエスケープシーケンスを使用して、Windowsでも機能するコンソール出力をフォーマットできます。

2
adatapost

デバッグを支援するために、System.out.println()の出力をさまざまな色で強調表示したいようですが、System.outのすべての出力をプログラムエントリポイントのファイルにリダイレクトしないのはなぜですか。 :

FileOutputStream fis = new FileOutputStream(new File("log.txt"));
PrintStream out = new PrintStream(fis); 
System.setOut(out);

次に、 BareTail など、さまざまな色を使用して構成可能な強調表示機能を備えた、無料でポータブルなリアルタイムログファイル監視ツールを使用して、このファイルを表示します。

0
Ken Chan