今天转换数据,遇到了用ibatIS做持久层的系统,弄不清数据的关联关系,就想着打印出后台SQL出来,在网上找了找相关的方法,现在记录下来以便以后自己用着方便。ibatIS的配置文件有两种,一种是xml的,一种是properties的。我用的是xml文件的,也把properties记下来,说不定哪天用的到。
第一种:log4j.xml文件的
<appender name="IBatis" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<logger name="com.ibatis" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Connection" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Statement" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level value="DEBUG" />
<appender-ref ref="IBatis" />
</logger>
<logger name="java.sql.ResultSet" additivity="true">
<level value="DEBUG" />
<appender-ref ref="IBatis" />
</logger>
第二种:log4j.properties
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
Spring+Struts2+Ibatis日志系统配置
在web.xml中配置log4j的动态加载监听器<context-param>
注:其实如果你的log4j.properties是放在classpath下,log4jConfigLocation是没有必要配置的,因为默认的路劲就是classpath。spring的log4jConfigListener是用来监听log4j配置的变更的,如果设置了这个监听器,则以后log4j的配置发生变化时,你不用重新编译打包发布项目。spring会自动加载变更后的 配置文件
简单的log4j配置
1:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
:1
log4j.rootLogger=DEBUG,stdout
#ibatis start#
log4j.logger.com.ibatis = DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG,stdout
log4j.logger.java.sql.ResultSet = DEBUG
#ibatis end#
#spring start#
#log4j.logger.com.shunwang.bussiness.service = DEBUG,stdout
#spring end#
log4j支持不同的日志级别,其中debug是最低的等级,最高等级是error。通常在项目开发阶段使用debug级别,输出的信息会非常详细,详细到每个bean的创建,以及bean每个属性的注入。而在项目发布阶段则没必要这么详细,将日志的级别设成error就行了。
在以上的配置中是将日志输出到控制台,项目发布后需要将日志输出到日志文件,以备以后查看
可以将1:处的配置改成以下样式:
log4j.appender.stdout=org.apache.log4j.FileAppender
log4j.appender.stdout.Target=(日志文件的绝对路径)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n