最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用log4j2打印mybatis的sql執(zhí)行日志方式

 更新時(shí)間:2023年09月19日 17:05:53   作者:PacosonSWJTU  
這篇文章主要介紹了使用log4j2打印mybatis的sql執(zhí)行日志方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

log4j2打印mybatis的sql執(zhí)行日志

maven配置jar包依賴 

如下:

<!-- 日志jar -->
		<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-api</artifactId>
		    <version>2.11.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-core</artifactId>
		    <version>2.11.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-web</artifactId>
		    <version>2.11.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-slf4j-impl</artifactId>
		    <version>2.11.1</version>
		</dependency>
	</dependencies>

配置log4j2.xml文件

內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
    <Logger name="com.swjtu.crud.dao" level="DEBUG or TRACE" additivity="false">
      <AppenderRef ref="Console"/>
    </Logger>
  </Loggers>
</Configuration>

Logger 標(biāo)簽 配置了需要打印日志的mapper(Mapper類或mapper XML 文件所在包)

Logger標(biāo)簽中的 level屬性取值為 DEBUG 或者 TRACE,(取其一)

mybatis配置文件

mybatis-config.xml中設(shè)置日志的工具類 

如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<properties resource="dbconfig.properties">
	</properties>
	<settings>
  	    <!-- 駝峰命名規(guī)則 -->
  		<setting name="mapUnderscoreToCamelCase" value="true"/>
  		<!-- 配置日志工具 -->
		<setting name="logImpl" value="LOG4J2" />
  	</settings>
  	<typeAliases>
	  <package name="com.swjtu.crud.bean" />
	</typeAliases>
  	<plugins>
  		<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
  	</plugins>
	<environments default="development">
		<!-- 開發(fā)環(huán)境 -->
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}"/>
				<property name="url" value="${jdbc.url}"/>
				<property name="username" value="${jdbc.username}"/>
				<property name="password" value="${jdbc.password}"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="com\swjtu\crud\dao\dept.mapper.xml"/>
	</mappers>
</configuration>

日志打印效果

20:35:28.742 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) ==>  Preparing: SELECT dept_id AS DEPT_ID , dept_name AS DEPT_NAME FROM dept_tbl WHERE rcrd_id IN ( ? , ? , ? ) 
20:35:28.786 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) ==> Parameters: 1(String), 2(String), 3(String)
20:35:28.807 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) <==      Total: 3

打印sql為:

<!-- 查詢部門列表 --> 
  <select id="getDeptList" resultType="map"> 
  	SELECT dept_id AS DEPT_ID 
  	       , dept_name AS DEPT_NAME
  	  FROM dept_tbl 
  	 WHERE rcrd_id IN 
  	      (
  	 	    <foreach collection="LIST" item="item" separator=", ">
  	 	      #{item} 
  	        </foreach> 
 	      ) 
  </select>

配置Log4j,使得MyBatis打印出SQL語句

環(huán)境參數(shù)

  • JDK:jdk1.8.0_25
  • IDE:Eclipse Luna Servie Release 1
  • 框架:Spring 4.1.5 + SpringMVC 4.1.5 + MyBatis 3.2.2

配置步驟

一、設(shè)置MyBatis的Setting(非必須,不同環(huán)境下,可能不需要該設(shè)置)。

在“src/main/java/resources”目錄下,創(chuàng)建mybatis-config.xml文件,并且輸入下列內(nèi)容。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
? ? PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
? ? "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
? ? <settings>
? ? ? ? <setting name="lazyLoadingEnabled" value="false" />
? ? ? ? <setting name="logImpl" value="LOG4J" />
? ? </settings>
</configuration>

二、配置log4j的配置文件。

不同的項(xiàng)目中,log4j的配置文件的格式可能不同,在一些項(xiàng)目中,log4j的配置文件是XML格式的,比如log4j.xml;在另一些項(xiàng)目中,log4j的配置文件是properties格式的,比如log4j.properties。

備注:properties格式文件的配置一般只在老的項(xiàng)目中存在,新的互聯(lián)網(wǎng)類項(xiàng)目,一般都是XML格式。

1、對于properties格式文件的配置。

###############Log4j 4 SQL Output start#################
log4j.logger.com.xxx.mydao=DEBUG
log4j.logger.com.springframework=DEBUG
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 ?
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl=DEBUG
log4j.logger.java.sql=DEBUG,CONSOLE?
###############Log4j 4 SQL Output end###################

2、對于xml格式文件的配置。

<loggers>
? ? <!-- name可以指定包名或具體的類;additivity如果指定true,則root logger也會生效,相同日志會輸出兩次;false,則只有當(dāng)前日志文件輸出 -->
? ? <!-- 借據(jù)插入接口日志 -->
? ? <logger level="info" name="insertCreditBill" additivity="false">
? ? ? ? <appender-ref ref="insertCreditBillLog" />
? ? </logger> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? <!-- 下面是打印通過log4j2打印出mybatis語句的配置-->
? ? <logger name="com.xxx.mydao">
? ? ? ? <level>DEBUG</level>
? ? </logger>
? ? <logger name="com.springframework">
? ? ? ? <level>DEBUG</level>
? ? </logger> ? ? ? ? ? ? ? ? ? ? ? ?
? ? <logger name="com.ibatis" additivity="true">?
? ? ? ? <level>DEBUG</level>?
? ? </logger>
? ? <logger name="com.ibatis.common.jdbc.SimpleDataSource" additivity="true">?
? ? ? ? <level>DEBUG</level>?
? ? </logger> ? ? ? ?
? ? <logger name="com.ibatis.common.jdbc.ScriptRunner" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger> ? ?
? ? <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger> ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? <logger name="Java.sql.Connection" additivity="true"> ?
? ? ? ? <level>DEBUG</level>
? ? </logger>?
? ? <logger name="java.sql.Statement" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger>?
? ? <logger name="java.sql.PreparedStatement" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger>?
? ? <logger name="java.sql.ResultSet" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger> ? ??
? ? <logger name="org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl" additivity="true">?
? ? ? ? <level>DEBUG</level>
? ? </logger> ? ? ? ? ? ? ? ? ? ??
? ? <!-- root logger,任何其它的logger最終都相當(dāng)于繼承自 root logger -->
? ? <root level="INFO">
? ? ? ? <appenderRef ref="Console" />
? ? ? ? <appenderRef ref="FileLog"></appenderRef>
? ? </root>
</loggers>

說明:

上述配置中,“com.xxx.mydao”為自己項(xiàng)目中MyBatis的所有的mapper和xml文件所在的包名字。

至此,log4j的打印SQL語句的配置完成。

3、XML格式配置的精簡版本

<loggers> ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? <!-- 下面是打印通過log4j2打印出mybatis語句的配置-->
? ? <logger name="com.xxx.mydao">
? ? ? ? <level>DEBUG</level>
? ? </logger>
? ? <!-- root logger,任何其它的logger最終都相當(dāng)于繼承自 root logger -->
? ? <root level="INFO">
? ? ? ? <appenderRef ref="Console" />
? ? ? ? <appenderRef ref="FileLog"></appenderRef>
? ? </root>
</loggers>

說明:  

在開發(fā)中,需要配置讓哪個(gè)包下的程序打印出SQL,則僅僅只用配置那一個(gè)包名就成。

上述配置中,“com.xxx.mydao”為自己項(xiàng)目中MyBatis的mapper和xml文件所在的包名字,因此,精簡版中,僅僅配置了這個(gè)包的內(nèi)容

拓展

“細(xì)粒度”控制:Log4j打印出MyBatis中僅僅單個(gè)Mapper的配置。

<!-- 下面是通過配置log4j2,僅僅打印出單個(gè)mapper的SQL語句的配置-->
<logger name="com.beebank.dao.iface.UserMapper">
? ? <level>DEBUG</level>
</logger>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何使用JavaCV進(jìn)行圖像灰度化處理

    如何使用JavaCV進(jìn)行圖像灰度化處理

    在計(jì)算機(jī)視覺和圖像處理領(lǐng)域,圖像灰度化是一項(xiàng)基礎(chǔ)且重要的任務(wù),它將彩色圖像轉(zhuǎn)換為灰度圖像,JavaCV 是一個(gè)強(qiáng)大的開源庫,它提供了對各種計(jì)算機(jī)視覺算法和圖像處理操作的支持,本文將詳細(xì)介紹如何使用 JavaCV 進(jìn)行圖像灰度化處理,需要的朋友可以參考下
    2024-10-10
  • springboot的application.yml配置port不生效的解決方案

    springboot的application.yml配置port不生效的解決方案

    這篇文章主要介紹了springboot的application.yml配置port不生效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 通過實(shí)例深入了解java序列化

    通過實(shí)例深入了解java序列化

    這篇文章主要介紹了通過實(shí)例深入了解java序列化,
    2019-06-06
  • mybatis-plus 關(guān)于savebatch,saveorupdatebatch遇到的坑及解決辦法

    mybatis-plus 關(guān)于savebatch,saveorupdatebatch遇到的坑及解決辦法

    本文主要介紹了mybatis-plus 關(guān)于savebatch,saveorupdatebatch遇到的坑及解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Java?IO及BufferedReader.readline()出現(xiàn)的Bug

    Java?IO及BufferedReader.readline()出現(xiàn)的Bug

    這篇文章主要介紹了Java?IO及BufferedReader.readline()出現(xiàn)的Bug,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 一起來學(xué)習(xí)Java的棧和隊(duì)列

    一起來學(xué)習(xí)Java的棧和隊(duì)列

    這篇文章主要為大家詳細(xì)介紹了Java的棧和隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng)

    java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • maven依賴傳遞和依賴沖突原理

    maven依賴傳遞和依賴沖突原理

    這篇文章主要介紹了maven依賴傳遞和依賴沖突原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • springboot讀取自定義配置文件實(shí)現(xiàn)過程

    springboot讀取自定義配置文件實(shí)現(xiàn)過程

    本文介紹Spring Boot中配置文件讀取方法,包括使用@Value注解讀取application.properties和自定義properties文件,以及通過ResourceBundle編寫工具類ResourceUtil實(shí)現(xiàn)配置獲取
    2025-08-08
  • Spring中的refreshContext源碼分析

    Spring中的refreshContext源碼分析

    這篇文章主要介紹了Spring中的refreshContext源碼分析,在SpringBoot啟動(dòng)流程中,主要的兩個(gè)階段是初始化SpringApplication對象以及SpringApplication.run方法執(zhí)行的內(nèi)容,今天主要細(xì)講的是SpringApplication.run中的刷新容器refreshContext方法,需要的朋友可以參考下
    2023-12-12

最新評論

新和县| 调兵山市| 紫金县| 西充县| 安陆市| 喜德县| 武穴市| 福清市| 庆城县| 怀柔区| 镇赉县| 巴彦淖尔市| 民勤县| 桃园市| 忻州市| 商水县| 安溪县| 新疆| 贵溪市| 南昌市| 山阴县| 兴仁县| 阳西县| 房山区| 铅山县| 岢岚县| 桐梓县| 青海省| 凤山市| 枣庄市| 丽水市| 巴马| 石阡县| 彩票| 靖西县| 阳江市| 皋兰县| 衡南县| 平遥县| 东海县| 清涧县|