如何在弹出引导横幅打印后将终端颜色恢复为默认值

时间:2018-01-22 22:31:02

标签: spring-boot terminal-color

Spring boot通过banner.txt提供支持颜色的可配置横幅,例如

${AnsiColor.RED}
  __  __         ____          _   ____                              
 |  \/  |_   _  |  _ \ ___  __| | | __ )  __ _ _ __  _ __   ___ _ __ 
 | |\/| | | | | | |_) / _ \/ _` | |  _ \ / _` | '_ \| '_ \ / _ \ '__|
 | |  | | |_| | |  _ <  __/ (_| | | |_) | (_| | | | | | | |  __/ |   
 |_|  |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|   
         |___/                                                       
${AnsiColor.BRIGHT_WHITE}

不幸的是,横幅的最终颜色设置了弹簧启动应用程序后面的所有输出的颜色。最终颜色BRIGHT_WHITE对于BLACK的默认linux背景是可以的,但我也在intellij控制台中运行我的应用程序,它具有白色背景,所以我看不到横幅后的任何输出

横幅打印到标准输出后,如何将终端前景色和背景色恢复为横幅打印前的颜色?

将我的Intellij终端窗口的背景颜色设置为BLACK不是解决方案,因为这需要本地自定义IDE以产生正常/预期的行为,而另一个则需要其他行为团队成员可能不喜欢或不想要。使用Intellij的默认设置在本地运行应用程序会很奇怪,并想知道为什么应用程序不会产生任何输出。

此外,对于可能没有默认颜色设置的linux终端也是如此 - 终端颜色也是个人选择,绝不应该是操作要求。

2 个答案:

答案 0 :(得分:2)

试试${AnsiColor.DEFAULT}。我没有试过这个,但发现了一些用自定义颜色启动横幅并以默认结束它的示例。例如herehereherehere

答案 1 :(得分:0)

${AnsiStyle.NORMAL}为我工作(在Spring Boot 2中测试)。

IntelliJ IDEA(经过2019.3测试)也知道${AnsiStyle.NORMAL}并且不给出警告。

${AnsiColor.RED}
  __  __         ____          _   ____                              
 |  \/  |_   _  |  _ \ ___  __| | | __ )  __ _ _ __  _ __   ___ _ __ 
 | |\/| | | | | | |_) / _ \/ _` | |  _ \ / _` | '_ \| '_ \ / _ \ '__|
 | |  | | |_| | |  _ <  __/ (_| | | |_) | (_| | | | | | | |  __/ |   
 |_|  |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|   
         |___/                                                       
${AnsiStyle.NORMAL}