2013-07-04 3 views
5

In meinem Projekt mit ich habeLog SQL-Abfragen in Projekt Mybatis und 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> 

und

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 

ich nicht die SQL-Abfragen sehen, wenn ich die applicartion laufen in log gesucht, was zu wissen Ich vermisse

sah diesen Beitrag how to configure log4j for Mybatis to print my SQL Vorschlag zur Änderung der mybatis Klasse Konfiguration, aber nicht sicher, wie mit Feder SqlSessi zu tun onFactoryBean

Antwort

1

-Test mit der einfachste Weg, Konfiguration und im Protokoll sehen. Passen Sie dann die Ausgabe an (z. B. die Dateien, Ebenen).

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

wo die Konfigurationen schreiben> – eatSleepCode

+0

Hallo, @eatSleepCode Ich kann Ihnen nicht folgen. Was genau meinst du? –

+0

Ich meine, wo die Konfiguration in log4j.xml schreiben? Die Sache ist, dass ich nicht in der Lage bin, die Ausgabe auf der Konsole zu bekommen. – eatSleepCode

1

Versuchen Sie, alle erforderlichen Zeilen zu Ihrer Konfiguration hinzuzufügen. Hier

ist die Probe, die funktionieren sollte:

#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

Sie Protokollierung für Mybatis hinzufügen können über sie Mybatis-config.xml ist.

Add log4j wie so:

Mybatis-config.xml

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

Dann in Ihrem log4j.properties, fügen Sie die Klasse, die Sie protokollieren möchten:

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

SQL-Anweisungen werden auf der DEBUG-Ebene protokolliert, so dass eine Ausgabe auf DEBUG gesetzt:

log4j.logger.org.mybatis.example=DEBUG 

Weitere Einzelheiten finden Sie in der documentation.

3

aus einer Antwort von how to configure logback for Mybatis to print my SQL Zitiert, ich bin nicht sicher, ob dies in Teilen für Sie arbeiten. Es bietet die Spring-Konfiguration für die Protokollierung. Dieser Ansatz hat für mich funktioniert.

Um SQL-Anweisungen für bestimmte Mybatis Mapper set debug (TRACE zu Abfrage-Parameter und Ergebnisse zu sehen) Ebene für Logger mit voll qualifizierte Mapper Name

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

Sie melden sich alle anmelden können SQL-Anweisungen von allen Mappern, wenn sie in dem gleichen Paket wie diesem sind

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

Probieren Sie es aus, wenn das Problem immer noch besteht. Viel Glück!

Verwandte Themen