Como desativar o log do console na inicialização do Spring
1. Visão geral
Geralmente, os logs do console nos dão a oportunidade de depurar nosso sistema de maneira fácil e intuitiva. No entanto, há ocasiões em que não queremos habilitar esse recurso em nosso sistema.
Neste tutorial rápido,we’ll see how to avoid logging to the console when running a Spring Boot application.
Manteremos as coisas simples com exemplos diretos que mostram como fazer isso, quer estejamos usando Logback, Log4js2 ou mesmo a estrutura Java Util Logging.
Para aprender mais sobre frameworks de registro para Spring Boot, sugerimos dar uma olhada em nosso tutorialLogging in Spring Boot.
2. Como desativar a saída do console para logback
Se nosso projeto usarSpring Boot starters, a dependênciaspring-boot-starter-logging também será incluída.
Este iniciador específico configuraLogback como a estrutura padrão e, inicialmente, registra apenas no console por padrão.
Esta configuração pode ser personalizado adicionando um arquivologback-spring.xml aos nossos recursos.
Por exemplo, vamos configurar o XML para desabilitar a saída do console e registrar apenas em um arquivo:
Além disso, precisaremos da propriedade de configuraçãologging.file em nossoapplication.properties file:
logging.file=example-disabled-console.log
Nota: o que está realmente desabilitando a saída do console aqui é o fato de que não estamos incluindo oconsole-appender.xml in nosso arquivo XML , então uma tagconfiguration vazia também resolveria o problema.
Alternatively,we can avoid creating the XML file by overriding the default configuration with application properties.
Por exemplo, podemos potencialmente fazer uso da spropertylogging.pattern.console :
logging.pattern.console=
Esta propriedade é traduzida para a propriedade do sistemaCONSOLE_LOG_PATTERN, que é então usada pela configuração do console padrão do Spring.
This approach, of course, isn’t as clean and solid as the previous one. Não é o propósito pretendido da propriedade, portanto, este 'hack' pode não ser suportado pelo Logback em algum ponto.
Além disso, podemos desativar todas as atividades de registro, definindo o valor do nível do logger raiz paraOFF:
logging.level.root=OFF
3. Como evitar o logon no console com o Log4j2
Como podemos saber,Log4j2 suporta XML, JSON, YAML ou formatos de propriedades para configurar seu comportamento de registro.
Por uma questão de simplicidade, mostraremos apenas um exemplo simples de um arquivolog4j2.xml desta vez.
Os outros formatos respeitam a mesma estrutura de configuração:
Tal como acontece com a configuração do Logback, a razão pela qual a estrutura evita o registro no console não é a configuração 'per se', mas o fato de que o Root Logger não contém uma referência a um Appender do console.
4. Como desativar o log do console para o Java Util Log
O Java Util Logging (ou simplesmente 'JUL') pode não ser a solução de log mais popular para aplicativos Spring Boot atualmente.
De qualquer forma, vamos analisar como podemos nos livrar dos logs do console, caso o framework esteja presente em nosso projeto.
Tudo o que precisamos fazer é adicionar os seguintes valores aologging.properties padrão da nossa pasta de recursos:
handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=example.log
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
E inclua a propriedadelogging.file em nossoapplication.properties file. Qualquer valor fará o truque:
logging.file=true
5. Conclusão
Com esses exemplos curtos, agora podemos desativar os logs do console em nosso aplicativo de maneira descomplicada, independentemente da estrutura de log que estivermos usando.
Como sempre, podemos encontrar as implementações dos exemplos emour Github repository.