1. 程式人生 > >Java日誌的學習03--log4j 配置Spring JdbcTemplate已經MyBatis列印sql

Java日誌的學習03--log4j 配置Spring JdbcTemplate已經MyBatis列印sql

今天接著說說如何在日誌中配置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
#跟蹤執行praparedStatement執行過程,新增引數
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug

效果如下:
在這裡插入圖片描述

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>

效果如下:

在這裡插入圖片描述
如果是SpringBoot 專案則可以直接在application.yml 新增如下配置即可:

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