今天接着说说如何在日志中配置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>
JdbcTemplate 打印sql配置
在log4j.properties 中添加如下配置:
log4j.rootLogger =stdout
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug
这样就可以打印sql,如果还需要跟踪执行praparedStatement执行过程,添加参数,打印结果可以添加
#跟踪执行praparedStatement执行过程,添加参数
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug
原理:
在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
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:Java日志的学习03--log4j 配置Spring JdbcTemplate已经MyBatis打印sql