2013-02-28 57 views
3

我想在彈殼中爲我的控制檯輸出着色。 喜歡的東西:彈殼彩殼化輸出

System.out.println("\red; red text"); 

我知道着色JUL日誌輸出,但它不是足夠多。

我該怎麼做?

回答

9

您可以在輸出中使用Ansi值。

這裏是我的課有一些顏色常量:

public class AnsiConstants { 
    public static final String ANSI_RESET = "\u001B[0m"; 
    public static final String ANSI_BLACK = "\u001B[30m"; 
    public static final String ANSI_RED = "\u001B[31m"; 
    public static final String ANSI_GREEN = "\u001B[32m"; 
    public static final String ANSI_YELLOW = "\u001B[33m"; 
    public static final String ANSI_BLUE = "\u001B[34m"; 
    public static final String ANSI_PURPLE = "\u001B[35m"; 
    public static final String ANSI_CYAN = "\u001B[36m"; 
    public static final String ANSI_GRAY = "\u001B[37m"; 
    public static final String ANSI_WHITE = "\u001B[37;1m"; 
} 

你舉的例子可以產生:

System.out.println(ANSI_RED + "red text" + ANSI_RESET); 
+1

不適用於Windows CMD。 – Cengiz 2014-12-09 15:36:54

+0

但它在Mac上的Linux shell上工作。 – entpnerd 2016-01-08 17:29:52

+0

不適用於Windows CMD。 – 2017-12-13 09:19:25

0

如果使用的是基於Spring引導AnsiOutputAnsiColor應該工作。例如:

@SpringBootApplication 
public class Application { 

    @EventListener 
    public void onApplicationReady(ApplicationReadyEvent event) { 
    System.out.println(AnsiOutput.toString(
     AnsiColor.GREEN, "Service started successfully", AnsiColor.DEFAULT)); 
    } 

    @EventListener 
    public void onApplicationFailed(ApplicationFailedEvent event) { 
    System.err.println(AnsiOutput.toString(
     AnsiColor.RED, "Service startup failed", AnsiColor.DEFAULT)); 
    } 

    public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
    } 

}