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

mybatis?log4j2打印sql+日志實(shí)例代碼

 更新時(shí)間:2022年08月31日 14:49:57   作者:logytar  
在學(xué)習(xí)mybatis的時(shí)候,如果用log4j2來(lái)協(xié)助查看調(diào)試信息,則會(huì)大大提高學(xué)習(xí)的效率,加快debug速度,下面這篇文章主要給大家介紹了關(guān)于mybatis?log4j2打印sql+日志的相關(guān)資料,需要的朋友可以參考下

前言

將采用slf+log4j2方式進(jìn)行打印日志,以下用兩種方式,一種基于maven的springboot2,一種jdk6,普通jar包的springmvc

基于maven的springboot

第一步、由于前陣子java8可對(duì)應(yīng)的log4j漏洞問(wèn)題,公司要求log4j升級(jí)到2.17.1,因此需要把springboot自帶的log4j進(jìn)行排除引入高版本。

<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
 
		<!--log4j漏洞升級(jí)-->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-slf4j-impl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

第二步 log4j.xml

以下patternLayout做了對(duì)郵件、手機(jī)號(hào)、身份證號(hào)敏感數(shù)據(jù)轉(zhuǎn)碼**

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ERROR">
  <Appenders>
    <Console name="console" target="SYSTEM_OUT">
      <PatternLayout>
<!--        <pattern>%d{ISO8601}|%level|%thread|%c{1.}|%L|%msg%n</pattern>-->
        <pattern><![CDATA[%d{ISO8601}|%level|%thread|%c|%L|%replace{%replace{%replace{%msg}{(^|\D)([\d]{12})(\d{3}|\d{6}|\d{5}(\d|X|x))(\D|$)}{$1$2******$5}}{(^|\D)(1([358][0-9]|4[579]|66|7[0135678]|9[89])([0-9]{4})([0-9]{4}))(\D|$)}{$11$3****$5$6}}{(([A-Za-z0-9-_.]{1,3})([A-Za-z0-9-_.]*)(@[a-zA-Z0-9-_.]+(\.[a-zA-Z-_.]+)+))}{$2***$4}%n]]></pattern>
      </PatternLayout>
    </Console>
    <RollingFile name="file" filePattern="/qhapp/applogs/imeeting/imeeting_business_%d{yyyyMMdd}_%i.log" immediateFlush="true">
      <PatternLayout>
        <pattern>%d{ISO8601}|%level|%thread|%c{1.}|%L|%msg%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
        <SizeBasedTriggeringPolicy size="10 MB"/>
      </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="console"/>
    </Root>
    <Logger name="org.mybatis" level="INFO" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="org.springframework" level="INFO" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="com.company.booster" level="INFO" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
  </Loggers>
</Configuration>

第三步 輸出sql的mapper接口包,寫在*.properties,放置在resource下

#debug log 自己項(xiàng)目的包,寫dao接口的位置
logging.level.com.company.pm.mapper=debug

重新啟動(dòng)即可,sql日志就會(huì)出來(lái),如果想自己logger出來(lái),用slf即可

Logger logger = LoggerFactory.getLogger(getClass());
logger.debug("6867868@qq.com");

第二種 jdk6,普通jar包的springmvc

spring3 + mybatis3

jdk6建議log4j版本為2.3.2(官方因漏洞推薦),引入以下個(gè)jar包

log4j-slf4j-impl-2.3.2.jar、log4j-core-2.3.2.jar、log4j-api-2.3.2.jar、slf-api-1.7.25.jar、log4j-slf-impl-2.3.2.jar

由于不是maven項(xiàng)目,只是普通的mvc結(jié)構(gòu),因此我在src下建了兩個(gè)文件log4j2.xml(有些是resource,這個(gè)項(xiàng)目前期沒(méi)有這個(gè),反正最后打包后在class下面就是了)

 log4j2.xml,不知道,為啥在jdk6以及版本log4j2.3.2里面為何pattern不能寫多個(gè)replace,因此我只排除了郵箱敏感信息

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ERROR">
  <Appenders>
    <Console name="console" target="SYSTEM_OUT">
      <PatternLayout>
 
        <pattern><![CDATA[%d{ISO8601}|%level|%thread|%c|%L|%replace{%msg}{(([A-Za-z0-9-_.]{1,3})([A-Za-z0-9-_.]*)(@[a-zA-Z0-9-_.]+(\.[a-zA-Z-_.]+)+))}{$2***$4}%n]]></pattern>
<!--        <pattern><![CDATA[%d{ISO8601}|%level|%thread|%c|%L|%replace{%replace{%replace{%msg}{(^|\D)([\d]{12})(\d{3}|\d{6}|\d{5}(\d|X|x))(\D|$)}{$1$2******$5}}{(^|\D)(1([358][0-9]|4[579]|66|7[0135678]|9[89])([0-9]{4})([0-9]{4}))(\D|$)}{$11$3****$5$6}}{(([A-Za-z0-9-_.]{1,3})([A-Za-z0-9-_.]*)(@[a-zA-Z0-9-_.]+(\.[a-zA-Z-_.]+)+))}{$2***$4}%n]]></pattern>-->
 
      </PatternLayout>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="console"/>
    </Root>
    <Logger name="com.xxx自己的包.dao" level="DEBUG" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="org.mybatis" level="DEBUG" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="org.apache.ibatis" level="DEBUG" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="org.springframework" level="INFO" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    <Logger name="com.xxx自己的包" level="INFO" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
  </Loggers>
</Configuration>

mybatis-config.xml

<!-- 配置SqlSessionFactoryBean -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:configuration/mybatis-config.xml" />
		.....
	</bean>

application-context.cml

<!-- 配置SqlSessionFactoryBean -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:configuration/mybatis-config.xml" />
		.....
	</bean>

這里jdk6 slf+ log4j2有個(gè)坑點(diǎn),我不知道為何log4j.properties與log4j.xml不能同時(shí)存在

測(cè)試類

Logger logger = LoggerFactory.getLogger(getClass());
		logger.debug("6867868@qq.com");

總結(jié)

到此這篇關(guān)于mybatis log4j2打印sql日志的文章就介紹到這了,更多相關(guān)mybatis log4j2打印日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn)

    Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn)

    這篇文章主要介紹了Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • k8s部署MongDB全過(guò)程

    k8s部署MongDB全過(guò)程

    文章介紹了如何在Kubernetes集群中部署MongoDB,包括環(huán)境準(zhǔn)備、創(chuàng)建Secret、創(chuàng)建服務(wù)和Deployment,并通過(guò)Robo3T工具測(cè)試連接
    2025-01-01
  • java和jsp之間的request傳值方法

    java和jsp之間的request傳值方法

    這篇文章主要給大家介紹了關(guān)于java和jsp之間的request傳值方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • jvm支持最大線程數(shù)簡(jiǎn)單測(cè)試

    jvm支持最大線程數(shù)簡(jiǎn)單測(cè)試

    這篇文章主要介紹了jvm支持最大線程數(shù)簡(jiǎn)單測(cè)試,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • spring?boot+mybatis-plus配置讀寫分離的操作

    spring?boot+mybatis-plus配置讀寫分離的操作

    這篇文章主要介紹了spring?boot+mybatis-plus配置讀寫分離的操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • JavaCV與FFmpeg音視頻流處理技巧總結(jié)大全

    JavaCV與FFmpeg音視頻流處理技巧總結(jié)大全

    JavaCV是一個(gè)開(kāi)源的Java接口,它為幾個(gè)著名的計(jì)算機(jī)視覺(jué)庫(kù)(如OpenCV、FFmpeg)提供了Java封裝,這篇文章主要給大家介紹了關(guān)于JavaCV與FFmpeg音視頻流處理技巧總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • SpringBoot使用開(kāi)發(fā)環(huán)境application.properties問(wèn)題

    SpringBoot使用開(kāi)發(fā)環(huán)境application.properties問(wèn)題

    這篇文章主要介紹了SpringBoot使用開(kāi)發(fā)環(huán)境application.properties問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java實(shí)現(xiàn)實(shí)時(shí)監(jiān)控目錄下文件變化的方法

    Java實(shí)現(xiàn)實(shí)時(shí)監(jiān)控目錄下文件變化的方法

    今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)實(shí)時(shí)監(jiān)控目錄下文件變化的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存

    詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存

    本篇文章主要介紹了詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • SpringBoot中SmartLifecycle的使用解析

    SpringBoot中SmartLifecycle的使用解析

    這篇文章主要介紹了SpringBoot中SmartLifecycle的使用解析,SmartLifecycle是一個(gè)擴(kuò)展了Lifecycle接口,可以跟蹤spring容器ApplicationContext刷新或者關(guān)閉的接口,實(shí)現(xiàn)該接口的實(shí)現(xiàn)類有特定的執(zhí)行順序,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

桂林市| 将乐县| 库车县| 郴州市| 扎赉特旗| 买车| 东丰县| 图们市| 汉川市| 乃东县| 建宁县| 威远县| 蒙阴县| 广河县| 揭东县| 峨山| 都匀市| 体育| 高平市| 福州市| 渭南市| 盐边县| 门头沟区| 太谷县| 内江市| 安义县| 渑池县| 大同市| 个旧市| 平果县| 讷河市| 石家庄市| 青海省| 淮北市| 故城县| 蓝山县| 贡山| 锡林郭勒盟| 兖州市| 张掖市| 蚌埠市|