解决ssm环境下配置log4j打印mybatis的sql语句无效的问题
来源:互联网 发布:php输出九九乘法表 编辑:程序博客网 时间:2024/06/09 18:36
首先附上官网的说明文档:
mybatis Logging
环境spring4.3.0+springmvc4.3.0+mybatis3.4.0
按官方文档的说明
1 SLF4J2 Apache Commons Logging3 Log4j 24 Log4j5 JDK logging
,mybatis会使用最先找到的(按上文列举的顺序查找),不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。所以我们首先得指定要使用哪个日志框架,因为是在ssm环境中配置,所以没有mybatis-config.xml文件,就不能在里面配置下面几行
<configuration> <settings> ... <setting name="logImpl" value="LOG4J"/> ... </settings></configuration>
那我们就得在web.xml文件中指定使用log4j作为我们的日志框架的实现。
web.xml中的配置如下
<!-- 加载log4j配置文件 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> <!-- <param-value>/WEB-INF/log4j.xml</param-value> --> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
接着在编写log4j.propertes文件
log4j.properties
#定义LOG输出级别log4j.rootLogger=INFO,Console,File#定义日志输出目的地为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out#可以灵活的指定日志输出格式,下面一行是指定具体的格式log4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=[%c]-%m%n#mybatis显示SQL语句日志配置 #log4j.logger.org.mybatis=DEBUGlog4j.logger.net.cxp.blog.dao=DEBUG#文件大小到达指定尺寸的时候产生一个新的文件log4j.appender.File=org.apache.log4j.RollingFileAppender#指定输出目录log4j.appender.File.File=logs/ssm.log#定义文件最大大小log4j.appender.File.MaxFileSize=10MB#输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志log4j.appender.File.Threshold=ALLlog4j.appender.File.layout=org.apache.log4j.PatternLayoutlog4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm|\:ss}][%c]%m%n
其中和打印sql语句有关的是下面几句
#mybatis显示SQL语句日志配置 #log4j.logger.org.mybatis=DEBUGlog4j.logger.net.cxp.blog.dao=DEBUG
按照官方的配置,应该就写
log4j.logger.net.cxp.blog.dao=DEBUG
注:net.cxp.blog.dao是你的dao接口所在的包名
这行就行了,是不是很简单。。。。。可博主被这个简单的问题折腾了一个上午,百度了各种写法,又把properties文件换成xml文件,加了下面几句或类似写法的,比如log4j.logger.ibatis…等等
log4j.logger.java.sql.Connection=debuglog4j.logger.java.sql.Statement=debuglog4j.logger.java.sql.PreparedStatement=debug
除了打印一些数据库连接和事务提交的语句外,sql语句还是没有出来。但博主还是不死心,继续百度吧,靠谱的不不靠谱的都点开来看一下,后来看到知乎也有人提相关的问题–我怎么配置 java log4j在控制台打印不出mybaits 的sql语句 有谁能解决不?( baidu, google 中,搜到的方法都用过,都不能正常解决该问题 ),看到下面只有3个人回答,而且有两个的回答都是看过的。但还有
log4j.logger.org.mybatis=DEBUG
这句没见过,抱着试一试的想法,加了这句,竟然成功了,之后注释掉这句,只写官方的写法,就是下面这句,
log4j.logger.net.cxp.blog.dao=DEBUG
竟然又成功了。如果有人看到这篇文章解决了问题,别忘了去这里点赞喔。
- 解决ssm环境下配置log4j打印mybatis的sql语句无效的问题
- 配置mybatis解决log4j未正常打印sql的问题
- log4j 在控制台打印 mybatis 的 sql 语句的配置
- log4j.xml 简单配置 打印 mybatis 执行的 sql 语句
- 解决Mybatis使用log4j不能打印sql的问题
- log4j配置打印mybatis sql语句
- log4j配置打印mybatis sql语句
- log4j配置打印mybatis sql语句
- log4j配置打印mybatis sql语句
- MyBatis的配置及打印SQL语句
- ssm框架下利用log4j日志打印sql语句
- ibatis和myBatis打印sql语句的log4j配置文件
- log4j的使用以及mybatis在控制台打印sql语句
- log4j的使用以及mybatis在控制台打印sql语句
- Spring+SpringMVC+MyBatis配置log4j打印MyBatis sql语句
- mybatis打印sql log4j的两种配置方式
- 配置Log4j,使得MyBatis打印出SQL语句
- mybatis下使用log4j打印sql语句和执行结果
- 微信小程序发布了,要做什么啊?
- 有关scollview嵌套webview底部空白,高度无法自适应的问题解决方法
- div在一个父容器中进行移动
- javascript 函数
- Windows内存管理
- 解决ssm环境下配置log4j打印mybatis的sql语句无效的问题
- js跳出循环的方法
- Ubuntu系统下opencv的安装与测试
- ubuntu系统安装后无法连接无线问题
- 自定义progressBar
- js学习中的问题 indexOf() toFixed()
- js基础学习
- 【重大更新】DevExpress v16.2新版亮点(Reporting篇)
- 增加代码可读性——注释篇