几个月前搭建了一个Spring + mybatis的开发环境,在使用过程中log4j一直无法打印sql语句到控制台,前前后后折腾几次没弄好。今天又突然想起这个问题,到百度一查资料原来是jboss的日志配置文件的问题。
mybatis输出sql语句日志需要日志输出级别为debug,但是jboss6.1中默认的控制台日志输出级别为info。想要输出sql语句需要修改jboss6.1的配置文件jboss-logging.xml。
在jboss-6.1.0.Final\server\default\deploy下找到jboss-logging.xml进行修改。
<console-handler name="CONSOLE" autoflush="true" target="System.out">
<error-manager>
<only-once/>
</error-manager>
<!-- <level name="DEBUG"/> --><!-- 注释掉控制台日志级别 -->
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
</formatter>
</console-handler>
.......
<!-- 添加自己项目需要输出sql语句的包名 -->
<logger category="com.zach.dao">
<level name="INFO"/>
</logger>
项目中的log4j配置文件中加入配置
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
配置好后启动项目,sql语句可以打印出来了。