用另一种颜色显示System.out.println输出

时间:2011-08-17 10:03:44

标签: java eclipse colors 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

4 个答案:

答案 0 :(得分:21)

在Eclipse中,最简单的方法是将System.err.println用于你想要变成红色的行 - 我相信这是默认的。 (您可以在首选项 - >运行/调试 - >控制台中更改它。

当然,当在真正的控制台中运行时,这种差异不会出现,但我不认为 Eclipse控制台支持ANSI颜色转义序列等。< / p>

编辑:对于Windows控制台,我希望ANSI escape sequences可以正常工作。它不是非常可移植,但如果这不是问题,你可以创建一个类来适当地封装转义序列,所以你可以调用类似的东西:

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

(我可能会让这些方法返回到每次调用后的“当前”颜色。)

编辑:正如评论中所述,Jansi库已经存在,所以您也可以使用它。它没有上述方法,但我确信它仍然可以做你想要的......

答案 1 :(得分:7)

请参阅以下代码。另请参阅此链接以获取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");
    }   
}

答案 2 :(得分:2)

请查看JansiJansi's Github

  

Jansi是一个小型java库,允许您使用ANSI转义   用于格式化控制台输出的序列,甚至可以在Windows上运行。

答案 3 :(得分:0)

您似乎想要使用不同颜色突出显示System.out.println()的输出以帮助您进行调试,为什么不将System.out的所有输出重定向到程序条目中的文件要点:

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

然后使用一些免费的便携式实时日志文件监控工具,该工具具有使用不同颜色的可配置突出显示功能,例如BareTail,以查看此文件。