2013-07-04 17 views
5

nel mio progetto hoquery Log SQL in progetto utilizzando MyBatis e Spring

<bean id="ABCSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="ABCDataSource" /> 
    <property name="mapperLocations"> 
     <list> 
     <value>classpath:com/myco/dao/XYZMapper.xml</value> 
     </list> 
    </property> 
<bean> 

e

log4j.logger.java.sql.Connection=debug, stdout, abclog 
log4j.logger.java.sql.PreparedStatement=debug, stdout, abclog 
log4j.logger.java.sql=debug, stdout, abclog 
log4j.logger.org.mybatis=debug, stdout, abclog 
log4j.logger.org.apache.ibatis=debug, stdout, abclog 

Non vedo le query SQL quando ho eseguito l'applicartion nel registro voleva sapere che cosa mi manca

visto questo post how to configure log4j for Mybatis to print my SQL suggerendo di cambiare la configurazione mybatis classe, ma non è sicuro come fare con molla SqlSessi onFactoryBean

risposta

1

Test con la configurazione più semplice e vedere nel registro. Quindi personalizzare l'output (ad esempio i file, i livelli).

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" 
            "log4j.dtd" > 
<log4j:configuration> 

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p (%c.java:%L).%M - %m%n"/> 
    </layout> 
    </appender> 

    <root> 
    <priority value="TRACE" /> 
    <appender-ref ref="STDOUT"/> 
    </root> 

</log4j:configuration> 
+0

dove scrivere le configurazioni> – eatSleepCode

+0

Ciao, @eatSleepCode Non posso seguirti. Cosa intendi esattamente? –

+0

Intendo dire dove scrivere la configurazione, in log4j.xml? Inoltre, non sono in grado di ottenere l'output su console. – eatSleepCode

1

Prova ad aggiungere tutte le linee necessarie alla tua configurazione.

Ecco l'esempio che dovrebbe funzionare:

#configure root logger 
log4j.rootLogger=ERROR, file, stdout 

#configure all mybatis mappers logging 
log4j.logger.com.myco.dao=ERROR 
#configure your mapper logging 
log4j.logger.com.myco.dao.XYZMapper=DEBUG 

#configure appender 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
5

È possibile aggiungere la registrazione per Mybatis via è mybatis-config.xml.

Add log4j in questo modo:

mybatis-config.xml

<configuration> 
    <settings> 
    ... 
    <setting name="logImpl" value="LOG4J"/> 
    ... 
    </settings> 
</configuration> 

Poi, nel tuo log4j.properties, aggiungere la classe che si desidera effettuare il login:

log4j.logger.org.mybatis.example.MyMapper=TRACE 

Le istruzioni SQL vengono registrate al livello DEBUG, quindi impostare l'output su DEBUG:

log4j.logger.org.mybatis.example=DEBUG 

Per ulteriori dettagli, vedere documentation.

3

Citando da una risposta di how to configure logback for Mybatis to print my SQL, non sono sicuro se questo funzionerà per voi nella sua interezza. Fornisce la configurazione di Spring per la registrazione. Questo approccio ha funzionato per me.

Per collegarvi istruzioni SQL per il debug set particolare mybatis mapper (TRACE per vedere i parametri di ricerca e risultati) di livello per logger con pienamente nome mapper qualificato

<logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/> 

È possibile registrare tutti Istruzioni SQL di tutti i mappatori se si trovano nello stesso pacchetto

<logger name="com.mycompany.myapp.mapper" level="DEBUG"/> 

Provalo, se il problema è ancora lì. In bocca al lupo!