Respostas:
Update: A partir da Primavera de inicialização v1.2.0.RELEASE, as configurações application.properties
ou application.yml
se aplicam. Consulte a seção Níveis de log do guia de referência.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Para versões anteriores do Spring Boot, você não pode. Você simplesmente precisa usar a configuração normal para sua estrutura de log (log4j, logback) para isso. Adicione o arquivo de configuração apropriado ( log4j.xml
ou logback.xml
) ao src/main/resources
diretório e configure ao seu gosto.
Você pode habilitar o log de depuração especificando --debug
ao iniciar o aplicativo a partir da linha de comando.
O Spring Boot também fornece um bom ponto de partida para o logback configurar alguns padrões, cores etc., o arquivo base.xml, que você pode simplesmente incluir no arquivo logback.xml. (Isso também é recomendado no logback.xml padrão no Spring Boot.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
ou se application.yml
aplicam, conforme respondidas por Richard (módulo o problema :
ou =
--- os dois pontos parecem funcionar para mim).
Você pode fazer isso usando seu application.properties.
logging.level.=ERROR
-> Define o nível de log raiz como erro
...
logging.level.=DEBUG
-> Define o nível de log raiz como DEBUG
logging.file=${java.io.tmpdir}/myapp.log
-> Define o caminho absoluto do arquivo de log como TMPDIR / myapp.log
Um conjunto padrão e sensato de application.properties sobre o log usando perfis seria: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
Quando você desenvolve seu IDE favorito, basta adicionar um -Dspring.profiles.active=dev
argumento como VM à configuração de execução / depuração do seu aplicativo.
Isso fornecerá apenas erros ao efetuar logon de produção e depuração durante o desenvolvimento, SEM gravar a saída em um arquivo de log. Isso melhorará o desempenho durante o desenvolvimento (e economizará unidades SSD algumas horas de operação;)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
fará com que o aplicativo falhe ao iniciar e com erro: #java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
é apenas um atalho sintático de conveniência logging.level.root
, que pode ser preferido como (1) menos propenso a ser confundido com um erro de digitação, (2) potencialmente mais explícito e (3) trabalhando com o =
sinal de atribuição, que fornece mais consistência geral para o arquivo de configuração.
A maneira correta para definir a raiz nível de log está usando a propriedade logging.level.root
. Consulte a documentação , que foi atualizada desde que esta pergunta foi feita originalmente.
Exemplo:
logging.level.root=WARN
Suponha que seu aplicativo tenha o nome do pacote como com.company.myproject
. Em seguida, você pode definir o nível de log para classes dentro do seu projeto, conforme indicado abaixo nos arquivos application.properties
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
e logging.level.org.hibernate = DEBUG
definirá o nível de log para classes somente da Web framework Spring e do Hibernate.
Para definir o local do arquivo de log, use
logging.file = /home/ubuntu/myproject.log
Se você estiver no Spring Boot, poderá adicionar diretamente as seguintes propriedades no arquivo application.properties para definir o nível de log, customizar o padrão de log e armazenar logs no arquivo externo.
Estes são diferentes níveis de registro e sua ordem do mínimo << máximo.
DESLIGADO << FATAL << ERRO << AVISO << INFO << DEBUG << << TRACE << ALL
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
Por favor, passe por este link para personalizar seu registro com mais clareza.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Caso você queira usar uma estrutura de log diferente, log4j por exemplo, achei a abordagem mais fácil é desativar o próprio log de inicializador e implementar o seu próprio. Dessa forma, eu posso configurar todos os níveis de log em um arquivo, log4j.xml (no meu caso).
Para conseguir isso, basta adicionar essas linhas ao seu pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
Você provavelmente já tem a primeira dependência e precisa apenas das outras duas. Observe que este exemplo cobre apenas o log4j.
Isso é tudo, agora você está pronto para configurar o log para inicialização no seu arquivo de configuração log4j!
log4j.properties
.
Você pode tentar definir o nível do log como DEBUG, pois ele mostrará tudo ao iniciar o aplicativo
logging.level.root=DEBUG
Para os registros: a documentação oficial , como para o Spring Boot v1.2.0.RELEASE e Spring v4.1.3.RELEASE:
Se a única alteração que você precisa fazer no log é definir os níveis de vários loggers, você pode fazer isso em application.properties usando o prefixo "logging.level", por exemplo
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Você também pode definir o local de um arquivo para o qual efetuar logon (além do console) usando "logging.file".
Para definir as configurações mais refinadas de um sistema de log, você precisa usar o formato de configuração nativo suportado pelo LoggingSystem em questão. Por padrão, o Spring Boot seleciona a configuração nativa de seu local padrão para o sistema (por exemplo, classpath: logback.xml para Logback), mas você pode definir o local do arquivo de configuração usando a propriedade "logging.config".
Se você deseja definir mais detalhes, adicione um nome de arquivo de configuração de log "logback.xml" ou "logback-spring.xml".
no seu arquivo application.properties, insira assim:
logging.config: classpath:logback-spring.xml
no loback-spring.xml, insira assim:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
As respostas existentes são ótimas. Eu só quero compartilhar com você um novo recurso de inicialização por mola, que permite agrupar logs e definir o nível de log em todo o grupo.
Exemplo dos documentos:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
É um recurso interessante que traz mais flexibilidade.
Na minha configuração atual, defini-a em application.yaml assim:
logging:
level:
ROOT: TRACE
Estou usando o spring-boot: 2.2.0.RELEASE. Você pode definir qualquer pacote que deva ter o nível TRACE assim.
no projeto de inicialização do Spring, podemos escrever logging.level.root = WARN, mas aqui está o problema, temos que reiniciar novamente, mesmo que tenhamos adicionado a dependência de devtools, no arquivo de propriedades, se formos modificados, qualquer valor não será detectável automaticamente, por essa limitação que conheci a solução i, e podemos adicionar o atuador no pom.xml e passar o nível do registrador como mostrado abaixo no cliente do carteiro na barra de URL http: // localhost: 8080 / loggers / ROOT ou http: // localhost: 8080 / loggers / com .mycompany e no corpo você pode passar o formato json como abaixo
{
"configuredLevel": "WARN"
}
No caso do eclipse IDE e seu projeto ser finalizado, lembre-se de limpar e construir o projeto para refletir as alterações.
Com o Springboot 2, você pode definir o nível de log raiz com uma variável de ambiente como esta:
logging.level.root=DEBUG
Ou você pode definir o log específico para pacotes como este:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
Settings
->Config Vars
definalogging.level.com.yourpackage
para o nível desejado (INFO, ERROR, DEBUG).