how to show queries in mybatis file through log4j.xml

3,055 views
Skip to first unread message

Emi Lu

unread,
Jul 25, 2011, 9:02:40 AM7/25/11
to mybatis-user
Good morning,

In log4j.xml, could someone help how to set mybatis all queries to be shown?

For example,
===================
mybatis.xml
<select id="" ...
<update id=""...

In log4j.xml
================
<logger name="org.apache.ibatis">
<level value="info" />
<appender-ref ref="db_log" />
</logger>

<logger name="java.sql">
<level value="info" />
<appender-ref ref="db_log" />
</logger>

<logger name="java.sql.Statement">
<level value="info" />
<appender-ref ref="db_log" />
</logger>


But, no queries in mybatis.xml are shown :-(

Thanks a lot!
Emi

Richard Yee

unread,
Jul 25, 2011, 1:28:25 PM7/25/11
to mybati...@googlegroups.com
Did you try changing the levels to DEBUG as I mentioned earlier?
 
-Richard

Emi Lu

unread,
Jul 25, 2011, 1:41:33 PM7/25/11
to mybati...@googlegroups.com, Richard Yee

> Did you try changing the levels to DEBUG as I mentioned earlier?

Before I used DEBUG, and you suggested me to change to INFO. I changed
them into info, but still did not see the message :-(

So, I send the question again.

Emi


--
Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
em...@encs.concordia.ca +1 514 848-2424 x5884

Emi Lu

unread,
Jul 25, 2011, 3:20:15 PM7/25/11
to Richard Yee, mybatis-user
Richard,

> Re-read my earlier email. I never told you to use the INFO level. Are
> you seeing any change in the logs at DEBUG level? If not, perhaps there
> is another problem with your logging configuration. Make sure the
> log4j.xml file you are editing is actually getting picked up and used by
> Log4J.
> You might also set up your root logger to log to the console at DEBUG
> level. You should see the prepared statements being logged if the level
> is DEBUG for the java.sql package.


The following is the whole log4j.xml. No matter it is info or debug. No
mybatis query returns.

I thought the following lines should output the queries, but it did not.
Could some help?
<logger name="org.apache.ibatis">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>

<logger name="java.sql">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>

<logger name="java.sql.Statement">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>

Thanks a lot!
Emi

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

<log4j:configuration threshold="debug"
xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="threshold" value="debug" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{2}.%M:%L -
%m%n"/>
</layout>
</appender>

<appender name="error_log"
class="org.apache.log4j.RollingFileAppender">
<param name="threshold" value="error" />
<param name="file" value="@log4j.error@" />
<param name="maxFileSize" value="1MB" />
<param name="maxBackupIndex" value="1" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{3}.%M:%L -
%m%n" />
</layout>
<filter class= "org.apache.log4j.varia.LevelRangeFilter">
<param name= "LevelMax" value= "fatal" />
<param name= "LevelMin" value= "warn" />
<param name= "AcceptOnMatch" value= "true" />
</filter>
</appender>


<appender name="info_log"
class="org.apache.log4j.RollingFileAppender">
<param name="threshold" value="debug" />
<param name="file" value="@log4j.info@" />
<param name="maxFileSize" value="1024KB" />
<param name="maxBackupIndex" value="1" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{3}.%M:%L -
%m%n" />
</layout>
<filter class= "org.apache.log4j.varia.LevelRangeFilter">
<param name= "LevelMax" value= "info" />
<param name= "LevelMin" value= "info" />
<param name= "AcceptOnMatch" value= "true" />
</filter>

</appender>


<appender name="db_log" class="org.apache.log4j.RollingFileAppender">
<param name="threshold" value="error" />
<param name="file" value="@log4j.db@" />
<param name="maxFileSize" value="1MB" />
<param name="maxBackupIndex" value="1" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{3}.%M:%L -
%m%n" />
</layout>
<filter class= "org.apache.log4j.varia.LevelRangeFilter">
<param name= "LevelMax" value= "fatal" />
<param name= "LevelMin" value= "debug" />
<param name= "AcceptOnMatch" value= "true" />
</filter>
</appender>


<appender name="debug_html"
class="org.apache.log4j.RollingFileAppender">
<param name="threshold" value="debug" />
<param name="file" value="@log4j.debug.html@" />
<param name="maxFileSize" value="1024KB" />
<param name="maxBackupIndex" value="1" />
<param name="append" value="true" />
<layout class="org.apache.log4j.HTMLLayout" />
<filter class= "org.apache.log4j.varia.LevelRangeFilter">
<param name= "LevelMax" value= "debug" />
<param name= "LevelMin" value= "debug" />
<param name= "AcceptOnMatch" value= "true" />
</filter>
</appender>

<!-- specify the logging level for loggers from other libraries -->
<logger name="org.apache.ibatis">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>

<logger name="java.sql">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>

<logger name="java.sql.Statement">
<level value="debug" />


<appender-ref ref="db_log" />
</logger>


<logger name="ca.concordia.encs.fis.apps.people.action">
<level value="debug" />
<appender-ref ref="debug_html" />
</logger>

<logger name="ca.concordia.encs.fis.apps.people">
<level value="info" />
<appender-ref ref="info_log" />
</logger>

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


</log4j:configuration>

Jeff Butler

unread,
Jul 25, 2011, 3:23:10 PM7/25/11
to mybati...@googlegroups.com
Please read the logging section in the user's guide. It is likely
that you have some other logging system (like SLF or JCL) in your
classpath. If that is the case, MyBatis might never see your
log4j configuration because it will select one of the other logging
implementations first. If you want to force MyBatis to use log4j,
then execute this line of code:

org.apache.ibatis.logging.LogFactory.useLog4JLogging();

Make sure to do this before calling any other MyBatis code.

Jeff Butler

Emi Lu

unread,
Jul 25, 2011, 3:50:46 PM7/25/11
to Richard Yee, mybatis-user
It works now.

To debug, I need change db_log = debug.

Thanks a lot!
Emi

Reply all
Reply to author
Forward
0 new messages