如何在打印 spring 引导横幅后将终端颜色恢复为默认颜色
How to restore terminal color to default after spring boot banner has printed
Spring 引导通过 banner.txt
提供支持颜色的可配置横幅,例如
${AnsiColor.RED}
__ __ ____ _ ____
| \/ |_ _ | _ \ ___ __| | | __ ) __ _ _ __ _ __ ___ _ __
| |\/| | | | | | |_) / _ \/ _` | | _ \ / _` | '_ \| '_ \ / _ \ '__|
| | | | |_| | | _ < __/ (_| | | |_) | (_| | | | | | | | __/ |
|_| |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|
|___/
${AnsiColor.BRIGHT_WHITE}
不幸的是,横幅的最终颜色设置了 spring 启动应用程序之后的所有输出的颜色。对于 BLACK
的默认 linux 背景,最终颜色 BRIGHT_WHITE
是可以的,但我也在 intellij 控制台中 运行 我的应用程序,它有一个白色背景,所以我可以'在横幅后看到任何输出。
横幅打印到标准输出后,如何将终端前景色和背景色恢复到横幅打印前的颜色?
将我的 Intellij 终端 window 的背景颜色设置为 BLACK
不是解决方案,因为这需要 [=30] 的本地自定义=] 产生 normal/expected 行为,而其他团队成员可能不喜欢或不想要的行为。 运行 使用 Intellij 的默认设置本地应用程序会令人惊讶,并且想知道为什么应用程序没有产生任何输出。
此外,linux 终端也是如此,它可能没有默认颜色设置 - 同样,终端颜色是个人选择,绝不应成为操作要求。
尝试${AnsiColor.DEFAULT}. I have not tried this but found a few examples which start the banner with a custom color and end it with default. For instance here, here, here and here。
${AnsiStyle.NORMAL}
对我有用(在 Spring Boot 2 中测试)。
IntelliJ IDEA(用2019.3测试)也知道${AnsiStyle.NORMAL}
并且不给出警告
${AnsiColor.RED}
__ __ ____ _ ____
| \/ |_ _ | _ \ ___ __| | | __ ) __ _ _ __ _ __ ___ _ __
| |\/| | | | | | |_) / _ \/ _` | | _ \ / _` | '_ \| '_ \ / _ \ '__|
| | | | |_| | | _ < __/ (_| | | |_) | (_| | | | | | | | __/ |
|_| |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|
|___/
${AnsiStyle.NORMAL}
${AnsiColor.DEFAULT}
完美运行,但它在 IntelliJ 中显示了一些不相关的警告。
${Ansi.DEFAULT}
也有效,并且没有警告。
它也提供所有其他颜色,${Ansi.BLUE}
、${Ansi.RED}
等
来源:https://mkyong.com/spring-boot/spring-boot-custom-banner-example
适用于 SpringBoot 2.5.5 和 IntelliJ 2021.2.3
Spring 引导通过 banner.txt
提供支持颜色的可配置横幅,例如
${AnsiColor.RED}
__ __ ____ _ ____
| \/ |_ _ | _ \ ___ __| | | __ ) __ _ _ __ _ __ ___ _ __
| |\/| | | | | | |_) / _ \/ _` | | _ \ / _` | '_ \| '_ \ / _ \ '__|
| | | | |_| | | _ < __/ (_| | | |_) | (_| | | | | | | | __/ |
|_| |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|
|___/
${AnsiColor.BRIGHT_WHITE}
不幸的是,横幅的最终颜色设置了 spring 启动应用程序之后的所有输出的颜色。对于 BLACK
的默认 linux 背景,最终颜色 BRIGHT_WHITE
是可以的,但我也在 intellij 控制台中 运行 我的应用程序,它有一个白色背景,所以我可以'在横幅后看到任何输出。
横幅打印到标准输出后,如何将终端前景色和背景色恢复到横幅打印前的颜色?
将我的 Intellij 终端 window 的背景颜色设置为 BLACK
不是解决方案,因为这需要 [=30] 的本地自定义=] 产生 normal/expected 行为,而其他团队成员可能不喜欢或不想要的行为。 运行 使用 Intellij 的默认设置本地应用程序会令人惊讶,并且想知道为什么应用程序没有产生任何输出。
此外,linux 终端也是如此,它可能没有默认颜色设置 - 同样,终端颜色是个人选择,绝不应成为操作要求。
尝试${AnsiColor.DEFAULT}. I have not tried this but found a few examples which start the banner with a custom color and end it with default. For instance here, here, here and here。
${AnsiStyle.NORMAL}
对我有用(在 Spring Boot 2 中测试)。
IntelliJ IDEA(用2019.3测试)也知道${AnsiStyle.NORMAL}
并且不给出警告
${AnsiColor.RED}
__ __ ____ _ ____
| \/ |_ _ | _ \ ___ __| | | __ ) __ _ _ __ _ __ ___ _ __
| |\/| | | | | | |_) / _ \/ _` | | _ \ / _` | '_ \| '_ \ / _ \ '__|
| | | | |_| | | _ < __/ (_| | | |_) | (_| | | | | | | | __/ |
|_| |_|\__, | |_| \_\___|\__,_| |____/ \__,_|_| |_|_| |_|\___|_|
|___/
${AnsiStyle.NORMAL}
${AnsiColor.DEFAULT}
完美运行,但它在 IntelliJ 中显示了一些不相关的警告。
${Ansi.DEFAULT}
也有效,并且没有警告。
它也提供所有其他颜色,${Ansi.BLUE}
、${Ansi.RED}
等
来源:https://mkyong.com/spring-boot/spring-boot-custom-banner-example
适用于 SpringBoot 2.5.5 和 IntelliJ 2021.2.3