Como configurar logs em uma aplicação Spring Boot?

Os logs no Spring Boot permitem monitorar e depurar aplicações, utilizando SLF4J e Logback para registrar eventos e erros.

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 para com.meuprojeto.

5. Testando a Geração de Logs

  1. Inicie a aplicação e acesse http://localhost:8080/logs.
  2. Verifique o console para as mensagens de log.
  3. 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.

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 e logger.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

Compartilhe este tutorial: Como configurar logs em uma aplicação Spring Boot

Compartilhe este tutorial

Continue aprendendo:

O que é e como funciona o Hibernate Validator

O Hibernate Validator é a implementação padrão da especificação Bean Validation, permitindo validar dados automaticamente em aplicações Java.

Tutorial anterior

O que são interceptadores (Interceptors) no Spring

Interceptadores no Spring permitem a manipulação de requisições e respostas HTTP antes e depois da execução de um Controller.

Próximo tutorial