como desativar o logotipo de boot de primavera em stdout?

88

Existe uma maneira de desativar o adorável, mas muito visível, logotipo de inicialização ASCII Spring:

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

... despejado em STDOUT toda vez que você executa um aplicativo de inicialização de primavera?

Mudei todo o registro para ERROR em meu logback.xml, mas isso não fez nada:

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

editar: Não é chamado de "logotipo" na documentação. O termo amigável para pesquisa é um "banner".

Fabien Benoit-Koch
fonte
2
Adicione spring.main.show_banner=falseao seu application.properties.
M. Deinum
2
diz-se que "spring.main.show_banner = false" foi descontinuado
mxi1

Respostas:

136

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

Editar Nas versões mais recentes do Spring Boot (o atual é 1.3.3), a maneira de fazer isso é:

1) application.properties

spring.main.banner-mode=off

2) application.yml

spring:
    main:
        banner-mode: "off"

3) método principal

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

Docs

Editar:

Para alterar isso com uma variável de ambiente, use a propriedade com sublinhado em vez de ponto. Tentar:

SPRING_MAIN_BANNER-MODE = desligado

Veja os documentos para configuração externalizada.

Evgeni Dimitrov
fonte
1
Perfeito. Eu estava pesquisando freneticamente os documentos sobre um "logotipo", mas é chamado de banner. Bem, obrigado!
Fabien Benoit-Koch
5
No entanto, é bom - agora todos nós que pesquisamos o logotipo encontramos esta página (;
Traubenfuchs
1
deveria ser new SpringApplicationBuilder().bannerMode(Banner.Mode.OFF)tão showBanner agora está obsoleto
Ondrej Skalicka
Qual é a variável de ambiente equivalente a isso? Não tenho acesso ao aplicativo de boot do spring diretamente (é uma imagem do docker) e então estou configurando as propriedades do spring via env vars.
batjko
Para uma variável de ambiente, eu recomendaria "SPRING_MAIN_BANNER_MODE", com um sublinhado em vez de um "-", caso o servidor não suporte travessões nas variáveis ​​de ambiente.
pconrey
28

Outra opção é adicionar um banner personalizado em um arquivo banner.txt ao seu classpath, que será alterado para o seu banner personalizado.

  1. crie um arquivo banner.txt no classpath (ou seja: src / main / resources )
  2. Editar seu banner personalizado
  3. Execute o aplicativo
Leonardo dias
fonte
4
E, se fizer isso, essas ferramentas podem ser úteis: google.ca/search?q=ascii+text+generator
Raman
13

Isso mudou ligeiramente no Spring Boot 1.3. A propriedade agora é:

spring.main.banner_mode=off

No código, agora é:

springApplication.setBannerMode(Banner.Mode.OFF);

ou usando o construtor:

new SpringApplicationBuilder()
.bannerMode(Banner.Mode.OFF)
Wim Deblauwe
fonte
5

Se você estiver usando Spring Boot 1.3 e application.yml (não propriedades), então você precisa citar o 'OFF', ou seja

spring:
  main:
    banner_mode: 'OFF'
Roubar
fonte
2

crie um arquivo "application.yml" em src / main / resources "e cole o código abaixo. Isso resolveria o problema

spring:
    main:
        banner-mode: "off"
geisterfurz007
fonte
0

Você pode usar este código para remover o banner

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

    }

}
Usman Yaqoob
fonte