春天外壳着色输出(Spring shell colorized output)

2019-08-17 06:10发布

我想我的着色控制台输出春季壳。 就像是:

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

我知道着色JUL日志输出,但它不是足够多。

我该怎么办呢?

Answer 1:

您可以在输出时使用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);


Answer 2:

如果使用的是基于Spring引导AnsiOutput与AnsiColor应该工作。 例:

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

}


文章来源: Spring shell colorized output