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

解決springmvc整合Mybatis的Log4j日志輸出問題

 更新時(shí)間:2021年07月14日 09:41:30   作者:烈空小Y  
這篇文章主要介紹了解決springmvc整合Mybatis的Log4j日志輸出問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springmvc整合Mybatis的Log4j日志輸出

當(dāng)我們進(jìn)行web開發(fā)的時(shí)候總是看到配置的log4j日志在控制臺無法顯示mybatis的主要是指sql、參數(shù)、結(jié)果,出現(xiàn)這種問題有兩種情況:

第一種情況

下面文檔描述的mybatis本身內(nèi)置很多種日志框架使用,所以如果我們要用具體哪個(gè)日志框架,就需要進(jìn)行相應(yīng)mybatis配置,或者就是按照mybatis本身規(guī)則運(yùn)行。

問題在這里文檔:http://mybatis.github.io/mybatis-3/zh/logging.html

配置方式:新增文件,有就直接添加mybatis-config.xml

<?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="logImpl" value="LOG4J"/>  
    </settings>  
</configuration>

再把這個(gè)文件添加到:

<!--(主庫)整合相應(yīng)的MyBatis持久層相應(yīng)的插件并注冊相應(yīng)的MyBatis模板 (dataSource1 主庫數(shù)據(jù)源)-->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dynamicDataSource" />
      <property name="configLocation" value="classpath:mybatis-config.xml"></property><!-- 配置mybatis的日志記錄 -->  
      <property name="mapperLocations" value="classpath*:com/belle/finance/**/**/daomapper/mapper/*Mapper.xml"/>
    </bean> 

這樣就配置好了,使用log4j進(jìn)行日志記錄不會運(yùn)行mybatis自身規(guī)則。

第二種情況

就是log4j的日志級別使用錯誤,導(dǎo)致mybatis信息打印不出來;

日志級別

每個(gè)Logger都被了一個(gè)日志級別(log level),用來控制日志信息的輸出。日志級別從高到低分為:

A:off 最高等級,用于關(guān)閉所有日志記錄。

B:fatal 指出每個(gè)嚴(yán)重的錯誤事件將會導(dǎo)致應(yīng)用程序的退出。

C:error 指出雖然發(fā)生錯誤事件,但仍然不影響系統(tǒng)的繼續(xù)運(yùn)行。

D:warm 表明會出現(xiàn)潛在的錯誤情形。

E:info 一般和在粗粒度級別上,強(qiáng)調(diào)應(yīng)用程序的運(yùn)行全程。

F:debug 一般用于細(xì)粒度級別上,對調(diào)試應(yīng)用程序非常有幫助。

G:all 最低等級,用于打開所有日志記錄。

上面這些級別是定義在org.apache.log4j.Level類中。Log4j只建議使用4個(gè)級別,優(yōu)先級從高到低分別是error,warn,info和debug。通過使用日志級別,可以控制應(yīng)用程序中相應(yīng)級別日志信息的輸出。例如,如果使用b了info級別,則應(yīng)用程序中所有低于info級別的日志信息(如debug)將不會被打印出來。

根據(jù)上面的log4j的說明,另外根據(jù)mybatis的細(xì)粒度得出,mybatis要把log4j的日志至少配置到DEBUG級別,才能顯示出sql日志,如下:

log4j.logger.com.demo.user=DEBUG

Mybatis內(nèi)置的日志工廠提供日志功能,具體的日志實(shí)現(xiàn)有以下幾種工具:

  • SLF4J
  • Apache Commons Logging
  • Log4j 2
  • Log4j
  • JDK logging

具體選擇哪個(gè)日志實(shí)現(xiàn)工具由MyBatis的內(nèi)置日志工廠確定。它會使用最先找到的(按上文列舉的順序查找)。 如果一個(gè)都未找到,日志功能就會被禁用。

不少應(yīng)用服務(wù)器的classpath中已經(jīng)包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis會把它作為具體的日志實(shí)現(xiàn)。記住這點(diǎn)非常重要。

這將意味著,在諸如 WebSphere的環(huán)境中——WebSphere提供了Commons Logging的私有實(shí)現(xiàn),你的Log4J配置將被忽略。

這種做法不免讓人悲催,MyBatis怎么能忽略你的配置呢?事實(shí)上,因Commons Logging已經(jīng)存 在了,按照優(yōu)先級順序,Log4J自然就被忽略了!

不過,如果你的應(yīng)用部署在一個(gè)包含Commons Logging的環(huán)境, 而你又想用其他的日志框架,你可以通過在MyBatis的配置文件mybatis-config.xml里面添加一項(xiàng)setting(配置)來選擇一個(gè)不同的日志實(shí)現(xiàn)。

Log4j實(shí)現(xiàn)日志輸出功能

一、為什么要配置mybtis的logger?

mybatis自己設(shè)計(jì)以及實(shí)現(xiàn)了org.apache.ibatis.logging.Log接口。

Mybatis為了避免對第三方的日志包存在強(qiáng)依賴,內(nèi)部的Log采用了代理模式。通過配置的方式,代理真實(shí)的日志對象. 如果沒有配置log,mybatis會按照以下順序嘗試加載日志輸出類:

  1. SLF4J
  2. Apache Commons Logging
  3. Log4j 2
  4. Log4j
  5. JDK logging
  6. no logging(沒有日志)

二、如何開啟日志輸出?

2.1 下載log4j的jar包并導(dǎo)入到build path下

在這里插入圖片描述

2.2 開啟日志輸出的配置

在config.xml文件中的settings元素中配置日志實(shí)現(xiàn)類。

	<settings>
		<setting name="logImpl" value="LOG4J"/>
	</settings>

2.3 編寫一個(gè)文件:log4j.properties放在類路徑下面

第一行表示日志輸出的級別的debug級別,Console表示輸出位置是控制臺(可以輸出到文件或數(shù)據(jù)庫,可以是發(fā)郵件)。

log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

2.4 log4j的日志輸出的級別:

  1. DEBUG < INFO < WARN < <ERROR < FATAL
  2. DEBUG :流經(jīng)系統(tǒng)的詳細(xì)信息。最低級別的日志輸出,一般用于開發(fā)階段的調(diào)試。
  3. INFO :一般消息輸出(啟動、關(guān)閉)
  4. WARN :警告輸出
  5. ERROR :錯誤輸出
  6. FATAL :導(dǎo)致應(yīng)用程序提前終止的嚴(yán)重錯誤。一般這些信息將立即呈現(xiàn)在狀態(tài)控制臺上。

查看日志輸出

debug基本的輸出可以清楚地看到連接數(shù)據(jù)庫的詳細(xì)信息。

在這里插入圖片描述

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

相關(guān)文章

  • Redis作為緩存應(yīng)用的情形詳細(xì)分析

    Redis作為緩存應(yīng)用的情形詳細(xì)分析

    實(shí)際開發(fā)中緩存處理是必須的,不可能我們每次客戶端去請求一次服務(wù)器,服務(wù)器每次都要去數(shù)據(jù)庫中進(jìn)行查找,為什么要使用緩存?說到底是為了提高系統(tǒng)的運(yùn)行速度
    2023-01-01
  • 教你怎么用Java獲取國家法定節(jié)假日

    教你怎么用Java獲取國家法定節(jié)假日

    這篇文章主要介紹了教你怎么用Java獲取國家法定節(jié)假日,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • mybatis同一張表多次連接查詢相同列賦值問題小結(jié)

    mybatis同一張表多次連接查詢相同列賦值問題小結(jié)

    這篇文章主要介紹了mybatis同一張表多次連接查詢相同列賦值問題,非常不錯,具有參考借鑒價(jià)值,需要的的朋友參考下
    2017-01-01
  • Java實(shí)現(xiàn)屏幕截圖工具的代碼分享

    Java實(shí)現(xiàn)屏幕截圖工具的代碼分享

    這篇文章主要為大家介紹了如何利用Java語言編寫一個(gè)電腦屏幕截圖工具,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的幫助,需要的可以參考一下
    2022-05-05
  • JAVA設(shè)計(jì)模式---原型模式你了解嗎

    JAVA設(shè)計(jì)模式---原型模式你了解嗎

    這篇文章主要介紹了JAVA 原型模式的的相關(guān)資料,文中講解非常細(xì)致,實(shí)例幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2021-09-09
  • Java系統(tǒng)的高并發(fā)解決方法詳解

    Java系統(tǒng)的高并發(fā)解決方法詳解

    這篇文章主要介紹了Java系統(tǒng)的高并發(fā)解決方法,內(nèi)容十分豐富,在這里分享給大家,需要的朋友可以參考。
    2017-09-09
  • mybatis-plus批量插入優(yōu)化方式

    mybatis-plus批量插入優(yōu)化方式

    MyBatis-Plus的saveBatch()方法默認(rèn)是單條插入,通過在JDBC URL添加rewriteBatchedStatements=true參數(shù)啟用批量插入,官方提供的sql注入器可自定義方法,如InsertBatchSomeColumn實(shí)現(xiàn)真批量插入,但存在單次插入數(shù)據(jù)量過大問題,可通過分批插入優(yōu)化,避免超出MySQL限制
    2024-09-09
  • Springboot導(dǎo)出文件,前端下載文件方式

    Springboot導(dǎo)出文件,前端下載文件方式

    這篇文章主要介紹了Springboot導(dǎo)出文件,前端下載文件方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Gradle構(gòu)建基本的Web項(xiàng)目結(jié)構(gòu)

    Gradle構(gòu)建基本的Web項(xiàng)目結(jié)構(gòu)

    這篇文章主要為大家介紹了Gradle創(chuàng)建Web項(xiàng)目基本的框架結(jié)構(gòu)搭建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Java檢查日期字符串是否合法的方法總結(jié)

    Java檢查日期字符串是否合法的方法總結(jié)

    后端接口在接收數(shù)據(jù)的時(shí)候,都需要進(jìn)行檢查。檢查全部通過后,才能夠執(zhí)行業(yè)務(wù)邏輯。本文總結(jié)了四個(gè)Java檢查日期字符串是否合法的方法,感興趣的可以了解一下
    2022-10-10

最新評論

射洪县| 乐业县| 通渭县| 兴国县| 望谟县| 汝城县| 延吉市| 亚东县| 泰兴市| 巴南区| 茂名市| 新竹市| 晋宁县| 宝丰县| 惠水县| 定远县| 元氏县| 金堂县| 广饶县| 武威市| 密云县| 霍山县| 鹤峰县| 天长市| 南充市| 石景山区| 青河县| 竹山县| 阿拉善盟| 阳信县| 东台市| 招远市| 济源市| 澎湖县| 福清市| 诸暨市| 田阳县| 吴川市| 上高县| 会同县| 峨眉山市|