Como configurar logs em uma aplicação Spring Boot?
Os logs são fundamentais para monitorar, depurar e manter aplicações em produção. No Spring Boot, a biblioteca padrão para logging é o Logback, que já vem embutida e pode ser facilmente configurada.
1. Adicionando Dependências para Logging
O Spring Boot já inclui o SLF4J e Logback por padrão. Caso precise usar Log4j2, adicione a dependência ao pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<scope>runtime</scope>
</dependency>
Para evitar conflitos com Logback, desative-o adicionando a exclusão na dependência principal:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
2. Criando Logs no Spring Boot
A maneira recomendada para gerar logs no Spring Boot é utilizando SLF4J com LoggerFactory
:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/logs")
public class LogController {
private static final Logger logger = LoggerFactory.getLogger(LogController.class);
@GetMapping
public String gerarLogs() {
logger.info("Isso é um log de INFO");
logger.warn("Isso é um log de WARN");
logger.error("Isso é um log de ERROR");
return "Logs gerados! Verifique o console.";
}
}
Explicação:
logger.info()
→ Mensagem de informação.logger.warn()
→ Mensagem de aviso.logger.error()
→ Mensagem de erro.
3. Configurando o Nível de Log
Os níveis de log podem ser ajustados no application.properties
:
logging.level.root=INFO
logging.level.org.springframework=DEBUG
logging.level.com.meuprojeto=TRACE
Explicação:
INFO
→ Exibe logs de informação e superiores.DEBUG
→ Exibe logs detalhados de Spring Boot.TRACE
→ Exibe logs mais detalhados do projeto.
4. Criando um Arquivo de Configuração do Logback
Para personalizar logs, crie um arquivo logback-spring.xml em src/main/resources/
:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/aplicacao.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.meuprojeto" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</configuration>
Explicação:
- Os logs serão salvos no arquivo
logs/aplicacao.log
.- O padrão de log exibe data, thread, nível, classe e mensagem.
DEBUG
está ativado apenas paracom.meuprojeto
.
5. Testando a Geração de Logs
- Inicie a aplicação e acesse
http://localhost:8080/logs
. - Verifique o console para as mensagens de log.
- Veja os logs salvos no arquivo
logs/aplicacao.log
.
Conclusão
O Spring Boot facilita a configuração de logs com SLF4J e Logback. Com logs bem configurados, é possível monitorar aplicações, identificar problemas e garantir a estabilidade do sistema em produção.
Por que configurar logs corretamente em aplicações Spring Boot?
Os logs são essenciais para qualquer aplicação. Sem um sistema de logging eficiente, seria impossível diagnosticar falhas e entender o comportamento da aplicação em produção. O Spring Boot, por padrão, utiliza Logback, mas também permite o uso de Log4j2 para quem deseja mais controle. Configurar logs corretamente pode reduzir o tempo gasto na identificação de erros e melhorar a observabilidade do sistema.
Algumas aplicações:
- Monitoramento de erros em produção
- Registro de eventos para auditoria
- Depuração de código durante o desenvolvimento
- Melhoria na manutenção e suporte de sistemas
Dicas para quem está começando
- Use
logger.info()
para mensagens comuns elogger.error()
para erros críticos - Não armazene logs sensíveis em arquivos públicos
- Defina níveis de logs apropriados para cada ambiente
- Ative logs em arquivos para facilitar a análise posterior
Contribuições de Rodrigo Farias