如何在标准输出中禁用 Spring Boot 徽标?
Posted
技术标签:
【中文标题】如何在标准输出中禁用 Spring Boot 徽标?【英文标题】:how to disable spring boot logo in stdout? 【发布时间】:2014-12-22 12:53:19 【问题描述】:有没有办法禁用可爱但非常明显的ASCII Spring boot logo:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.1.8.RELEASE)
...每次运行 Spring Boot 应用程序时都在 STDOUT 中转储?
我在我的 logback.xml 中将所有日志记录切换为 ERROR,但什么也没做:
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
编辑:在文档中它不称为“徽标”。搜索友好字词是“横幅”。
【问题讨论】:
将spring.main.show_banner=false
添加到您的application.properties。
据说“spring.main.show_banner=false”已经被弃用了
【参考方案1】:
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-banner
new SpringApplicationBuilder()
.showBanner(false)
.sources(Parent.class)
.child(Application.class)
.run(args);
编辑 在较新版本的 spring boot(当前是 1.3.3)中,这样做的方法是:
1) 应用程序.properties
spring.main.banner-mode=off
2) application.yml
spring:
main:
banner-mode: "off"
3) 主要方法
public static void main(String[] args)
SpringApplication app = new SpringApplication(MySpringConfiguration.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
Docs
编辑:
要使用环境变量更改此属性,请使用带下划线而不是点的属性。试试:
SPRING_MAIN_BANNER-MODE=关闭
请参阅docs 了解外部配置。
【讨论】:
完美。我疯狂地在谷歌上搜索有关“徽标”的文档,但它被称为横幅。好的,谢谢! 这很好 - 现在我们所有搜索徽标的人都找到了这个页面 (; 应该是new SpringApplicationBuilder().bannerMode(Banner.Mode.OFF)
,因为 showBanner 现已弃用
与此等效的环境变量是什么?我无法直接访问 spring boot 应用程序(它是一个 docker 映像),所以我通过 env vars 设置 spring 属性。
对于环境变量,我建议使用“SPRING_MAIN_BANNER_MODE”,用下划线代替“-”,以防服务器不支持环境变量中的破折号。【参考方案2】:
另一种选择是将 banner.txt 文件中的自定义横幅添加到您的类路径中,这将更改为您的自定义横幅。
-
在类路径中创建一个文件banner.txt(即:src/main/resources)
编辑您的自定义横幅
运行应用程序
【讨论】:
如果这样做,这些工具可能会有用:google.ca/search?q=ascii+text+generator【参考方案3】:这在 Spring Boot 1.3 中略有改变。该物业现在是:
spring.main.banner_mode=off
在代码中,现在是:
springApplication.setBannerMode(Banner.Mode.OFF);
或使用构建器:
new SpringApplicationBuilder()
.bannerMode(Banner.Mode.OFF)
【讨论】:
【参考方案4】:您可以在application.properties
中设置spring.main.show_banner=false
,如http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html 中所述。
【讨论】:
【参考方案5】:如果您使用的是 Spring Boot 1.3 和 application.yml(不是属性),那么您需要引用“OFF”即
spring:
main:
banner_mode: 'OFF'
【讨论】:
【参考方案6】:要删除它:
1)spring.main.banner-mode=off
在文件中添加以上行
application.properties
或
2) 在 Main java 类中使用它
setBannerMode(Banner.Mode.OFF);
或
3) 应用内*.yml 文件
spring:
main :
banner-mode=off
使用此链接了解更多详情
http://mytechnologythought.blogspot.com/2017/07/how-to-remove-spring-boot-banner.html
【讨论】:
应该是引号或单引号banner-mode='off'
banner-mode="off"
请不要使用 single 或 double 。直接使用
你是对的,基本上。但是一些旧版本(例如 2.1.6.RELEASE)Spring Boot 有 BindException 问题。 Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.Boolean] to type [org.springframework.boot.Banner$Mode] at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
酷我很高兴 :)【参考方案7】:
在 src/main/resources 下创建一个文件“application.yml”” 并粘贴下面的代码。这样就可以了
spring:
main:
banner-mode: "off"
【讨论】:
【参考方案8】:您可以使用此代码删除横幅
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootConsoleApplication
public static void main(String[] args) throws Exception
SpringApplication app = new SpringApplication(SpringBootConsoleApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
【讨论】:
以上是关于如何在标准输出中禁用 Spring Boot 徽标?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot:如何禁用 Tomcat 启动日志记录?
如何使用千分尺指定我想要在spring-boot中使用的度量标准的白名单
如何在 spring-boot 中禁用 spring-data-mongodb 自动配置
如何在 Spring-Boot 2 中禁用安全性? [复制]