服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - IDEA 集成log4j将SQL语句打印在控制台上的实现操作

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

2021-08-16 10:55宇翔苦涩 Java教程

这篇文章主要介绍了IDEA 集成log4j将SQL语句打印在控制台上的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

适用地点:maven的mybatis的项目

配置log4j.properties

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

内容为

?
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.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

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.com.github.vita.code.dao=trace。

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

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

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

延伸 · 阅读

精彩推荐