好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

IDEA 集成log4j将SQL语句打印在控制台上的实现操作

适用地点:maven的mybatis的项目

配置log4j.properties

内容为

?

1

2

3

4

5

6

log4j.rootLogger=error, Console

log4j.logger.cn.bdqn.dao=debug

#Console

log4j.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包

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

< 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。

但网上搜到的答案几乎都是下面的配置方式:

?

1

2

3

4

5

6

7

8

9

10

11

log4j.rootLogger=info,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

###显示SQL语句部分

log4j.logger测试数据.ibatis=DEBUG

log4j.logger测试数据.ibatis测试数据mon.jdbc.SimpleDataSource=DEBUG

log4j.logger测试数据.ibatis测试数据mon.jdbc.ScriptRunner=DEBUG

log4j.logger测试数据.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG

log4j.logger.java.sql. Connection =DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

rootLogger的级别是info,是为了防止其他类输出debug的调试代码(rootLogger若设为debug了,mybatis也没必要再设置了)。

但这段代码根本没有作用!

解决方案

经过一系列的尝试,终于找到了解决方案,直接修改dao层(将com.github.vita.code.dao修改为你项目中dao的路径)的输出级别即可:

?

1

2

3

4

5

6

< 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测试数据.github.vita.code.dao=trace。

这儿把输出调成了更低的trace,可以看到更详细的信息。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/qq_40110781/article/details/82894388

查看更多关于IDEA 集成log4j将SQL语句打印在控制台上的实现操作的详细内容...

  阅读:45次