Spring3+MyBatis3整合无法输出SQL语句问题的解决
来源:互联网 发布:淘宝修改密码 编辑:程序博客网 时间:2024/06/05 10:53
项目使用Spring3+MyBatis3整合,但是控制台就是部署出SQL语句,网上找了很多资料,都说是Log4j配置文件的问题,修改了N 边Log4j配置文件依然无效。
除了SQL 语句,其他都能显示,纠结的很
我的Log4j的配置文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE log4j:configuration SYSTEM "http://toolkit.alibaba-inc.com/dtd/log4j/log4j.dtd">
- <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
- <!-- ===================================================================== -->
- <!-- 定义全局输出适配器 -->
- <!-- ===================================================================== -->
- <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}]-[%c]-[%t] %x - %m%n"/>
- </layout>
- </appender>
- <!-- Mybatis and SQL -->
- <logger name="org.apache.ibatis" additivity="true">
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <logger name="org.mybatis.spring" additivity="true">
- <level value="ERROR"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <logger name="java.sql" additivity="true">
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <logger name="java.sql.Connection" additivity="true">
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <logger name="java.sql.Statement" additivity="true">
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <logger name="java.sql.PreparedStatement" additivity="true">
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <!-- Spring -->
- <logger name="org.springframework" additivity="true">
- <level value="ERROR"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <!-- ActiveMQ -->
- <logger name="org.apache.activemq" additivity="true">
- <level value="ERROR"/>
- <appender-ref ref="consoleAppender"/>
- </logger>
- <!-- ===================================================================== -->
- <!-- 根日志记录器 -->
- <!-- ===================================================================== -->
- <root>
- <level value="DEBUG"/>
- <appender-ref ref="consoleAppender"/>
- </root>
- </log4j:configuration>
最后,仔细查看启动时的输入发现了如下的错误提示:
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
于是,我想是不是这个地方出问题了呢,赶紧上网搜索解决这个问题的资料。网上找到一个解释:
地址:http://lveyo.iteye.com/blog/418376
这个提示应该是读入web应用程序的log4j.properties文件之前就报出来了。是在加载org.springframework.web.context.ContextLoader这个listener的时候没找到log4j的配置文件造成的。
仔细查看web.xml发现在加载org.springframework.web.context.ContextLoader这个listener之后才加载org.springframework.web.util.Log4jConfigListener,把log4j的配置放到org.springframework.web.context.ContextLoader之前,就可以解决这个问题了。
于是,我在web.xml配置文件中加入Log4j的配置,部分配置文件如下:
- <!--Log4j配置-->
- <context-param>
- <param-name>log4jConfigLocation</param-name>
- <param-value>/WEB-INF/log4j.xml</param-value>
- </context-param>
- <context-param>
- <param-name>log4jRefreshInterval</param-name>
- <param-value>60000</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
- <!-- 扫描spring配置文件 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring/application-*.xml</param-value>
- </context-param>
- <!-- 监听器 -->
- <listener>
- <listener-class>com.hanvon.iface.web.listener.WebAppEventListener</listener-class>
- </listener>
- .......
增加了上面的Log4j配置部分后,结果真的可以打印SQL 语句了,太高兴了!!!
我觉得,起作用的主要是下面的配置内容,这个配置正确设置了Log4j:
- <context-param>
- <param-name>log4jConfigLocation</param-name>
- <param-value>/WEB-INF/log4j.xml</param-value>
- </context-param>
- <context-param>
- <param-name>log4jRefreshInterval</param-name>
- <param-value>60000</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
部分SQL语句输出如下:
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Executing: SELECT COUNT(DISTINCT dev.ng_id) FROM dev_device dev WHERE dev.nt_state=?
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Executing: SELECT COUNT(DISTINCT dev.ng_id) FROM dev_device dev WHERE dev.nt_state=?
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-1] - ==> Parameters:
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-1] - ==> Parameters:
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Executing: SELECT COUNT(DISTINCT dev.ng_id) FROM dev_device dev WHERE dev.nt_state=?
- [2013-06-06 21:07:35.040]-[java.sql.PreparedStatement]-[http-8080-1] - ==> Parameters:
- [2013-06-06 21:07:35.041]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Parameters: 1(Integer)
- [2013-06-06 21:07:35.041]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Parameters: 1(Integer)
- [2013-06-06 21:07:35.041]-[java.sql.PreparedStatement]-[http-8080-2] - ==> Parameters: 1(Integer)
- [2013-06-06 21:07:35.079]-[java.sql.ResultSet]-[http-8080-2] - <== Columns: COUNT(DISTINCT dev.ng_id)
- [2013-06-06 21:07:35.079]-[java.sql.ResultSet]-[http-8080-2] - <== Columns: COUNT(DISTINCT dev.ng_id)
- [2013-06-06 21:07:35.087]-[java.sql.ResultSet]-[http-8080-2] - <== Row: 11
- [2013-06-06 21:07:35.087]-[java.sql.ResultSet]-[http-8080-2] - <== Row: 11
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
- [转]Spring3+MyBatis3整合无法输出SQL语句问题的解决 .
- Mybatis3.1.1 Spring3.1.1 MySQL无法插入数据的问题
- mybatis3 log4j 输出SQL语句
- mybatis和spring3整合,控制台输出sql语句.
- spring mvc + spring3整合mybatis3的demo!!!
- MyBatis3整合Spring3的Transaction事务处理
- spring3与mybatis3的整合一例
- MyBatis3.1.1和spring3.0的整合
- MyBatis3整合Spring3的Transaction事务处理
- c3p0+spring3+mybatis3的整合配置文件示例
- MyBatis3整合Spring3的Transaction事务处理
- MyBatis3.x和Spring3.x的整合
- MyBatis3整合Spring3、SpringMVC3
- MyBatis3整合Spring3、SpringMVC3
- Spring3 整合 Mybatis3
- Xstream解析XML文件
- hiho#1133 : 二分·二分查找之k小数
- Objective-C中instancetype详解
- C++ STL使用总结
- ASP.NET MVC 3和Razor中的@helper 语法
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
- phantomjs#2文件模块
- C++ 11 关键字auto
- zoj 3860 Find the Spy
- 数据结构—快速排序模型
- ubuntu 14.04关于gnome配置
- AndroidStudio获取SHA1方法
- Spring3.0.6定时任务task:scheduled
- 欢迎使用CSDN-markdown编辑器