java - requestmapping - ¿Cambiar el nivel de registro del marco de Spring en un proyecto de ejemplo simple?
spring mvc ejemplo (1)
Este es el trabajo de Spring Boot
que se trata debajo con el enrutamiento de enrutamiento jul
, jcl
y log4j
sobre slf4j
y el uso de Logback
través de slf4j
como puede ver por los nombres de clase de espacio de nombres abreviados distinguibles.
Todo esto es muy visible a través de la herramienta de diagrama IntelliJ directamente en el archivo pom:
Esta configuración sigue las mejores prácticas descritas / representadas en el sitio SLF4J :
El registro es hablador debido al nivel de DEBUG
primavera. Para alterar eso:
1) Cree un directorio de resources
en <projectDir>/src/main
como lo haría en un proyecto Maven. 2) Cree un archivo logback.xml
que contenga:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
¡y voilá!
Creating tables
Inserting customer record for John Woo
Inserting customer record for Jeff Dean
Inserting customer record for Josh Bloch
Inserting customer record for Josh Long
Querying for customer records where first_name = ''Josh'':
Customer[id=3, firstName=''Josh'', lastName=''Bloch'']
Customer[id=4, firstName=''Josh'', lastName=''Long'']
Al seguir este ejemplo de Spring, esperaba ver resultados como este:
Creating tables
Inserting customer record for John Woo
Inserting customer record for Jeff Dean
...
En su lugar, obtuve algunos mensajes de registro DEBUG
intercalados entre cada línea:
Creating tables
12:31:16.474 [main] DEBUG o.s.jdbc.core.JdbcTemplate - Executing SQL statement [drop table customers if exists]
12:31:16.484 [main] DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
12:31:16.484 [main] DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem]
...
Estas diversas respuestas parecen indicar que esto puede resolverse cambiando el nivel de registro en mi archivo log4j.properties
. Sin embargo, al seguir el ejemplo de Spring, nunca se menciona un archivo log4j.properties
.
Curiosamente, Spring parece estar usando log4j
internamente:
$ grep -R "log4j" *
Binary file build/libs/gs-relational-data-access-0.1.0.jar matches
Me imagino que podría usar log4j
para solucionar este problema, pero el manual no parece tener información sobre dónde poner log4j.properties
o cómo integrarlo en este proyecto.
¿Cómo cambio el nivel de registro para eliminar esas declaraciones DEBUG
?
Si necesito usar un archivo log4j.properties
, ¿dónde lo log4j.properties
? ¿Debo vincularlo a mi archivo build.gradle
, o hacer referencia a él en mis archivos .java
alguna manera?