2014-04-23 9 views
6

Quando si seguono this esempio Primavera mi aspettavo di vedere un output come questo:Modificare il livello del log framework Spring in un semplice progetto di esempio?

Creating tables 
Inserting customer record for John Woo 
Inserting customer record for Jeff Dean 
... 

Invece, ho avuto qualche DEBUG messaggi di log intervallati tra ogni riga:

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] 
... 

Thesevariousanswers sembrano indicare che questo può essere risolto cambiando il livello di registro nel mio file log4j.properties. Tuttavia, nel seguente numero the Spring example un file log4j.properties non viene mai menzionato.

È interessante notare che, Primavera sembra essere utilizzando log4j internamente:

$ grep -R "log4j" * 
Binary file build/libs/gs-relational-data-access-0.1.0.jar matches 

immagino che potrei usare log4j per risolvere questo problema, ma the manual non sembra avere informazioni su dove mettere log4j.properties o come integrarlo in questo progetto.

Come modificare il livello di registro per rimuovere le istruzioni DEBUG?

Se è necessario utilizzare un file log4j.properties, dove lo posto? Devo legarlo al mio file build.gradle o far riferimento in qualche modo ai miei file .java?

risposta

20

Si tratta di opere di Spring Boot che si occupano sotto con la registrazione di routing jul, jcl e log4j sopra slf4j e impiegando Logback tramite slf4j come si può dire per i nomi delle classi dello spazio dei nomi abbreviati distinguibili.

Tutto questo è ben visibile attraverso lo schema IntelliJ direttamente sul file pom:

enter image description here

questa configurazione è seguendo le migliori pratiche as described/depicted in the SLF4J site:

slf4j bridge setup - logback implementation

il registro è loquace a causa del livello Spring DEBUG. Per modificare quello:

1) Creare una directory resources sotto <projectDir>/src/main come si farebbe in un progetto Maven. 2) Creare un file logback.xml in esso contiene:

<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> 

e 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'] 
Problemi correlati