Search code examples
javaspring-bootlogback

How to disable spring boot logo in stdout?


Is there a way to disable the lovely but very visible ASCII Spring boot logo :

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.1.8.RELEASE)

...dumped in STDOUT every time your run a spring boot app?

I switched all logging to ERROR in my logback.xml, but that did nothing:

<root level="ERROR">
    <appender-ref ref="STDOUT" />
</root>

edit: It's not called a "Logo" in the documentation. The search-friendly-term is a "banner".


Solution

  • 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);
    

    Edit In the newer versions of spring boot(current is 1.3.3) the way to do it is:

    1) application.properties

    spring.main.banner-mode=off

    2) application.yml

    spring:
        main:
            banner-mode: "off"
    

    3) main method

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MySpringConfiguration.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
    }
    

    Docs

    Edit:

    To change this with and environment variable use the property with underscore instead of dot. Try:

    SPRING_MAIN_BANNER-MODE=off

    See the docs for externalized config.