Java日志的学习03--log4j 配置Spring JdbcTemplate已经MyBatis打印sql

举报
码农飞哥 发表于 2021/05/29 11:31:28 2021/05/29
【摘要】 今天接着说说如何在日志中配置SQL打印输出。 log4j的依赖添加 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</vers...

今天接着说说如何在日志中配置SQL打印输出。

log4j的依赖添加

<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> <scope>provided</scope>
		</dependency>
		<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.7</version> <scope>provided</scope>
		</dependency>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

JdbcTemplate 打印sql配置

log4j.properties 中添加如下配置:

log4j.rootLogger =stdout
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug

  
 
  • 1
  • 2
  • 3

这样就可以打印sql,如果还需要跟踪执行praparedStatement执行过程,添加参数,打印结果可以添加

#跟踪执行praparedStatement执行过程,添加参数
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug

  
 
  • 1
  • 2
  • 3

原理:

在JdbcTemplate 类中有如下的代码,所以,日志级别只能设置成debug
在这里插入图片描述

参考配置:

log4j.rootLogger =stdout
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
# 过滤掉第三方jar包的日志
log4j.logger.org.springframework=warn
log4j.logger.freemarker.cache=warn
#sql日志输出
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug
#跟踪执行praparedStatement执行过程,添加参数
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

效果如下:
在这里插入图片描述

MyBatis打印sql配置

如果是MyBatis的话

参考配置,在log4j.xml文件中:

<configuration status="info">
	<appenders>
		<Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%-5level %d %logger{36} - %msg%n" />
		</Console>
</appenders>
	<loggers>
		<!--mapper接口所在的位置-->
		<logger name="com.shop.hessian.mapper" level="debug" additivity="false"> <appender-ref ref="STDOUT" />
		</logger>
		<root level="info"> <appender-ref ref="logfile" /> <!--sql打印可用--> <appender-ref ref="STDOUT"/>
		</root>
	</loggers>
</configuration>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

效果如下:

在这里插入图片描述
如果是SpringBoot 项目则可以直接在application.yml 添加如下配置即可:

mybatis:
  configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  
 
  • 1
  • 2
  • 3

文章来源: feige.blog.csdn.net,作者:码农飞哥,版权归原作者所有,如需转载,请联系作者。

原文链接:feige.blog.csdn.net/article/details/84956348

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。