10

我有一个要调试的大项目,我想知道是否有任何方法可以用来更改System.out.printlneclipse 输出中的方法

例如 :

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 我有这个 系统输出

与 syserr 我有这个 系统服务器

4

4 回答 4

24

在 Eclipse 中,最简单的方法是使用System.err.println您想要显示为红色的行——我相信这是默认设置。(您可以在首选项 -> 运行/调试 -> 控制台中更改它)。

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

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

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

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

编辑:如评论中所述,Jansi库已经存在,因此您不妨使用它。它没有上述方法,但我相信它仍然会做你想做的事......

于 2011-08-17T10:05:55.153 回答
11

请参考以下代码。有关 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");
    }   
}
于 2014-09-05T10:09:00.003 回答
2

请看一下JansiJansi 的 Github

Jansi 是一个小型 Java 库,它允许您使用 ANSI 转义序列来格式化您的控制台输出,即使在 Windows 上也可以使用。

于 2011-08-17T10:16:49.257 回答
0

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

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

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

于 2011-08-17T11:13:47.977 回答