IDEA 集成log4j将SQL语句打印在控制台上的实现操作
适用地点:maven的mybatis的项目
配置log4j.properties
内容为
log4j.rootLogger=error, Console log4j.logger.cn.bdqn.dao=debug #Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
/*****************************************************/
同时maven库找到如下三个jar包
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version></dependency><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> <scope>test</scope></dependency>
将其复制到pom.xml
补充:mybatis打印SQL日志最终解决方案
问题在程序调试时想要mybatis打印SQL日志,但它并没有类似hibernate所提供的showsql功能,因此只能通过配置log4j日志输出级别的方式来打印sql。
但网上搜到的答案几乎都是下面的配置方式:
log4j.rootLogger=info,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.SimpleLayout###显示SQL语句部分log4j.logger.com.ibatis=DEBUGlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG
rootLogger的级别是info,是为了防止其他类输出debug的调试代码(rootLogger若设为debug了,mybatis也没必要再设置了)。
但这段代码根本没有作用!
解决方案经过一系列的尝试,终于找到了解决方案,直接修改dao层(将com.github.vita.code.dao修改为你项目中dao的路径)的输出级别即可:
<loggers> <Logger name='com.github.vita.code.dao' level='trace' /> <root level='info'> <appender-ref ref='Console'/> </root></loggers>
上面的是log4j 2的XML配置,log4j中对应的配置为log4j.logger.com.github.vita.code.dao=trace。
这儿把输出调成了更低的trace,可以看到更详细的信息。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。如有错误或未考虑完全的地方,望不吝赐教。
相关文章: