欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis日志配置方式(slf4j、log4j、log4j2)

 更新時(shí)間:2023年09月19日 11:08:30   作者:一個(gè)很懶的人  
這篇文章主要介紹了Mybatis日志配置方式(slf4j、log4j、log4j2),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. Mybatis日志

1.1 日志實(shí)現(xiàn)原理

Mybatis 通過使用內(nèi)置的日志工廠提供日志功能。

內(nèi)置日志工廠將會(huì)把日志工作委托給下面的實(shí)現(xiàn)之一:

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

MyBatis 內(nèi)置日志工廠會(huì)基于運(yùn)行時(shí)檢測(cè)信息選擇日志委托實(shí)現(xiàn)。它會(huì)(按上面羅列的順序)使用第一個(gè)查找到的實(shí)現(xiàn)。當(dāng)沒有找到這些實(shí)現(xiàn)時(shí),將會(huì)禁用日志功能。

1.2 日志實(shí)現(xiàn)方式

不少應(yīng)用服務(wù)器(如 Tomcat 和 WebShpere)的類路徑中已經(jīng)包含 Commons Logging。

注意,在這種配置環(huán)境下,MyBatis 會(huì)把 Commons Logging 作為日志工具。

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

這個(gè)時(shí)候你就會(huì)感覺很郁悶:看起來(lái) MyBatis 將你的 Log4J 配置忽略掉了(其實(shí)是因?yàn)樵谶@種配置環(huán)境下,MyBatis 使用了 Commons Logging 作為日志實(shí)現(xiàn))。

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

setting配置日志的有效取值

可選的值有: SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING,或者是實(shí)現(xiàn)了 org.apache.ibatis.logging.Log 接口,且構(gòu)造方法以字符串為參數(shù)的類完全限定名。

示例:

-

僅當(dāng)運(yùn)行時(shí)類路徑中存在該日志實(shí)現(xiàn)時(shí),日志實(shí)現(xiàn)的切換才會(huì)生效。

如果你的環(huán)境中并不存在 Log4J,你卻試圖調(diào)用了相應(yīng)的方法,MyBatis 就會(huì)忽略這一切換請(qǐng)求,并將以默認(rèn)的查找順序決定使用的日志實(shí)現(xiàn)。

2. SLF4J

SLF4J其實(shí)只是一個(gè)門面服務(wù)而已,他并不是真正的日志框架,真正的日志的輸出相關(guān)的實(shí)現(xiàn)還是要依賴Log4j、logback等日志框架的。

簡(jiǎn)單日志門面(simple logging Facade for java),slf4j并不是一個(gè)完整的日志框架,他只是為各種日志框架提供統(tǒng)一的API接口,及根據(jù)slf4j提供的接口規(guī)則使用Logger,而在部署的時(shí)候根據(jù)自己的需求配置自己希望使用的日志系統(tǒng)。可以說他是將各個(gè)日志系統(tǒng)接口進(jìn)行了抽象,抽象為統(tǒng)一的slf4j接口,這樣只要項(xiàng)目中使用slf4j API,我們可以隨時(shí)更換日志實(shí)現(xiàn),而不用更改代碼。

2.1 slf4j日志級(jí)別

SLF4J將日志分為trace、debug、info、warn、error五個(gè)級(jí)別,每個(gè)級(jí)別對(duì)應(yīng)記錄不同的日志,對(duì)應(yīng)不同的使用場(chǎng)景。

  • trace: trace是最低優(yōu)先級(jí)的日志,一般用來(lái)追蹤詳細(xì)的程序運(yùn)行流,比如程序的運(yùn)行過程中,運(yùn)行到了哪一個(gè)方法,進(jìn)入了哪一條分支。通過trace程序的運(yùn)行流程,可以判斷程序是否按照期望的邏輯在運(yùn)行。
  • debug: debug是比trace高一級(jí)別的日志,該級(jí)別的日志就是用來(lái)debug用的。這類日志往往用在判斷是否有出現(xiàn)bug的場(chǎng)景,且往往記錄了代碼運(yùn)行的詳細(xì)信息,比如方法調(diào)用傳入的參數(shù)信息。
  • info: info比debug高一級(jí)別,用來(lái)記錄程序運(yùn)行的一些關(guān)鍵信息,比如系統(tǒng)運(yùn)行到了哪一個(gè)階段,到達(dá)了哪一個(gè)狀態(tài)。
  • warn: warn比info的級(jí)別更高,用來(lái)記錄一些警告信息。警告信息表示,程序進(jìn)入了一個(gè)特殊的狀態(tài),在該狀態(tài)下程序可以繼續(xù)運(yùn)行,但是不建議讓程序進(jìn)入該狀態(tài),因?yàn)樵摖顟B(tài)可能導(dǎo)致結(jié)果出現(xiàn)問題。
  • error: error級(jí)別的日志是最高優(yōu)先級(jí)了,用來(lái)記錄運(yùn)行時(shí)的錯(cuò)誤信息,表示程序運(yùn)行過程中出現(xiàn)了需要被解決的問題,往往是一些異常。使用error日志的時(shí)候,一般會(huì)將詳細(xì)的異常出現(xiàn)的原因記錄

2.2 日志門面與日志實(shí)現(xiàn)

(1)日志門面

日志門面為日志系統(tǒng)也提供一套接口規(guī)范,日志系統(tǒng)通過這套日志門面進(jìn)行開發(fā)避免了直接依賴具體的日志框架。

(2)日志實(shí)面

具體日志功能的實(shí)現(xiàn)框架

(3)關(guān)系

日志系統(tǒng)一般分為,日志門面和日志實(shí)面(實(shí)現(xiàn));在使用了日志門面后,更改日志框架的時(shí)候就不需要修改底層代碼;

  • 日志門面與日志實(shí)現(xiàn)是接口與實(shí)現(xiàn)類的關(guān)系;
  • 日志門面可以理解為java中的一個(gè)interface(接口),而日志實(shí)面就是就是實(shí)現(xiàn)類。
  • 日志實(shí)面即為日志實(shí)現(xiàn),實(shí)現(xiàn)了日志門面中所規(guī)定的日志系統(tǒng)所需實(shí)現(xiàn)的功能,也就是說日志實(shí)面是日志門面中接口的實(shí)現(xiàn)類。

(4)優(yōu)點(diǎn)

  • 面向接口開發(fā),不再依賴具體的實(shí)現(xiàn)類。減少代碼的耦合。
  • 項(xiàng)目通過導(dǎo)入不同的日志實(shí)現(xiàn)類,可以靈活的切換日志框架
  • 統(tǒng)一API,方便開發(fā)者學(xué)習(xí)和使用
  • 統(tǒng)一配置便于項(xiàng)目日志的管理

2.3 日志門面與日志依賴配置

mybatis日志設(shè)置

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

(1)slf4j + log4j

<!-- slf4j日志門面 -->
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>slf4j-api</artifactId>
		    <version>1.7.25</version>
		</dependency>
		<!-- 引入slf4j對(duì)應(yīng)log4j的橋接器 -->
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>slf4j-log4j12</artifactId>
		    <version>1.7.25</version>
		</dependency>
		<!-- log4j日志實(shí)面(日志實(shí)現(xiàn)框架) -->
		<dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>1.2.17</version>
		</dependency>

(2)slf4j + log4j2

<!-- slf4j日志門面 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
		<!-- 引入slf4j對(duì)應(yīng)log4j2的橋接器 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <scope>runtime</scope>
            <version>2.11.0</version>
        </dependency>
        <!-- log4j2日志實(shí)面(日志實(shí)現(xiàn)框架) -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <scope>runtime</scope>
            <version>2.11.0</version>
        </dependency>

3. LOG4J

Log4j 是 Apache 的一個(gè)開放源代碼項(xiàng)目,通過使用 Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI 組件、甚至是套接口服務(wù) 器、NT 的事件記錄器、UNIX Syslog 守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過程。

最令人感興趣的就 是,這些可以通過一個(gè)配置文件來(lái)靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。

3.1 日志級(jí)別

每個(gè)Logger都被了一個(gè)日志級(jí)別(log level),用來(lái)控制日志信息的輸出。

日志級(jí)別從高到低分為:

  • fatal 指出每個(gè)嚴(yán)重的錯(cuò)誤事件將會(huì)導(dǎo)致應(yīng)用程序的退出。
  • error 指出雖然發(fā)生錯(cuò)誤事件,但仍然不影響系統(tǒng)的繼續(xù)運(yùn)行。
  • warn 表明會(huì)出現(xiàn)潛在的錯(cuò)誤情形。
  • info 一般和在粗粒度級(jí)別上,強(qiáng)調(diào)應(yīng)用程序的運(yùn)行全程。
  • debug 一般用于細(xì)粒度級(jí)別上,對(duì)調(diào)試應(yīng)用程序非常有幫助。
  • trace 是程序追蹤,可以用于輸出程序運(yùn)行中的變量,顯示執(zhí)行的流程。

還有兩個(gè)特殊的級(jí)別:

  • OFF,可用來(lái)關(guān)閉日志記錄。
  • ALL,啟用所有消息的日志記錄。

3.2 log4j重要組件

log4j從功能實(shí)現(xiàn)來(lái)說,主要由三大組件組成:Logger、Appender、Layout。(對(duì)應(yīng)關(guān)系如下:)

  • Logger是日志記錄器(也可以說是日志級(jí)別)
  • Appender是日志輸出目的地
  • Layout是日志輸出格式控制器

一個(gè)日志記錄器可以對(duì)應(yīng)多個(gè)輸出目的地,每個(gè)輸出目的地有特定的輸出格式。

(1)Logger

日志記錄器,指定輸出日志的級(jí)別,并且可以配置輸出日志的指定空間

log4j.prpperties配置

#   自定義logger(指定要輸出日志的全限定路徑、日志級(jí)別、選擇的appender)
log4j.logger.com.qf.dao=debug,CONSOLE

log4j.xml配置

<!--    自定義logger,additivity 日志是否在父Logger中輸出(即root中))-->
<!-- 自定義logger(指定要輸出日志的全限定路徑、日志級(jí)別、選擇的appender)-->
    <logger name="com.qfedu.dao" additivity="false">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="LOGFILE"/>
    </logger>

(2)Appender

log4j將日志輸出源稱為Appender,每個(gè)輸出源一個(gè)Appender,一個(gè)logger可以對(duì)應(yīng)多個(gè)Appender。

常見Appender

  • org.apache.log4j.ConsoleAppender:控制臺(tái)輸出
  • org.apache.log4j.FileAppender:輸出到文件
  • org.apache.log4j.DailyRollingFileAppender:每天產(chǎn)生日志輸出到文件
  • org.apache.log4j.RollingFileAppender:文件達(dá)到指定大小產(chǎn)生新文件
  • org.apache.log4j.WriterAppender:以流格式發(fā)送到指定位置
  • org.apache.log4j.jdbc.JDBCAppender:輸出到數(shù)據(jù)庫(kù)

log4j.prpperties配置

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n

log4j.xml配置

<!--    日志控制臺(tái)輸出配置-->
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n"/>
        </layout>
    </appender>

(3)Layout

每個(gè)Appender可以指定特定的輸出格式,log4j將輸出格式稱為L(zhǎng)ayout。

常見Layout

  • org.apache.log4j.HTMLLayout:HTML格式Layout
  • org.apache.log4j.PatternLayout:自定義格式Layout(常用)
  • org.apache.log4j.SimpleLayout:包含日志信息級(jí)別及信息
  • org.apache.log4j.TTCCLayout:包含生產(chǎn)時(shí)間、類別、級(jí)別等

常用PatternLayout

  • %m 輸出代碼中指定的消息
  • %p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL
  • %r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
  • %c 輸出所屬的類目,通常就是所在類的全名
  • %t 輸出產(chǎn)生該日志事件的線程名
  • %n 輸出一個(gè)回車換行符,Windows平臺(tái)為“\r\n”,Unix平臺(tái)為“\n”
  • %-x 左對(duì)其信息

3.3 mybatis日志配置log4j

mybatis配置log4j有以下兩種配置方式,主要區(qū)別為是否使用日志門面

(1)(日志門面+日志實(shí)面):slf4j + log4j

步驟1:mybatis日志設(shè)置

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

步驟2:導(dǎo)入相關(guān)依賴

<!-- slf4j日志門面 -->
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>slf4j-api</artifactId>
		    <version>1.7.25</version>
		</dependency>
		<!-- 引入slf4j對(duì)應(yīng)log4j的橋接器 -->
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>slf4j-log4j12</artifactId>
		    <version>1.7.25</version>
		</dependency>
		<!-- log4j日志實(shí)面(日志實(shí)現(xiàn)框架) -->
		<dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>1.2.17</version>
		</dependency>

步驟3:編寫配置文件

log4j基于自動(dòng)配置,所以配置文件名稱只能為: log4j.properties log4j.xml

以下示例僅展示文件輸出與控制臺(tái)輸出配置

配置1:log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootLogger=debug, CONSOLE, LOGFILE
# 表示自定義的logger不會(huì)繼承父Logger的appender輸出,默認(rèn)為true及輸出
lo4j.log4j.additivity.org.apache=false  
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\mybatis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n
#   自定義logger(指定要輸出日志的全限定路徑、日志級(jí)別、選擇的appender)
log4j.logger.com.qf.dao=debug,CONSOLE

配置2:log4j.xml

自定義logger(指定要輸出日志的全限定路徑、日志級(jí)別、選擇的appender),可以選擇多個(gè)appender

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="true">
<!--    日志控制臺(tái)輸出配置-->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n"/>
        </layout>
    </appender>
    <!-- 日志文件輸出配置-->
    <appender name="LOGFILE" class="org.apache.log4j.FileAppender">
        <param name="File" value="d:\mybatis.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c:%L] [%p] - %m%n"/>
        </layout>
    </appender>
<!--    自定義logger,additivity 日志是否在父Logger中輸出(即root中))-->
<!-- 自定義logger(指定要輸出日志的全限定路徑、日志級(jí)別、選擇的appender)-->
    <logger name="com.qfedu.dao" additivity="false">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="LOGFILE"/>
    </logger>
<!--    根logger-->
    <root>
        <level value="debug "/>
        <appender-ref ref="CONSOLE"/>
    </root>
</log4j:configuration>

(2)(不使用日志門面–不推薦): log4j

步驟1:mybatis日志設(shè)置

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

步驟2:導(dǎo)入相關(guān)依賴

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
    </dependency>

步驟3:編寫配置文件

  • log4j基于自動(dòng)配置,所以配置文件名稱只能為:log4j.propertieslog4j.xml
  • 以下示例僅展示文件輸出與控制臺(tái)輸出配置
  • 參考上述方式一示例

3. LOG4J2

Apache Log4j2 是對(duì)Log4j 的升級(jí):(Log4j2已經(jīng)不僅僅是Log4j的一個(gè)升級(jí)版本了,而是從頭到尾被重寫的,這可以認(rèn)為這其實(shí)就是完全不同的兩個(gè)框架。)

  • 異常處理,在logback中,Appender中的異常不會(huì)被應(yīng)用感知到,但是在log4j2中,提供了一些異常處理機(jī)制。
  • 性能提升,log4j2 相較于log4j 和 logback 都具有明顯的性能提升,有18倍性能提升。
  • 自動(dòng)重載配置,參考了logback的設(shè)計(jì),當(dāng)然會(huì)提供自動(dòng)刷新參數(shù)配置,最實(shí)用的就是我們?cè)谏a(chǎn)上可以動(dòng)態(tài)的修改日志的級(jí)別而不需要重啟應(yīng)用。
  • 無(wú)垃圾機(jī)制,log4j2 在大部分情況下,都可以使用其設(shè)計(jì)的一套無(wú)垃圾機(jī)制【對(duì)象重用、內(nèi)存緩沖】,避免頻繁的日志收集導(dǎo)致的 jvm gc。

3.1 mybatis配置log4j2

mybatis配置log4j2有以下兩種配置方式,主要區(qū)別為使用哪一個(gè)日志門面,一般情況下,由于log4j功能過于強(qiáng)大,所以 slf4j + log4j2 會(huì)是后續(xù)流行的搭配!

(1)log4j2(日志+門面)

步驟1:配置mybatis文件

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

步驟2:導(dǎo)入相關(guān)依賴

<!--	log4j2日志門面-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.11.2</version>
    </dependency>
<!--	log4j2日志實(shí)面(日志實(shí)現(xiàn))-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.11.2</version>
    </dependency>

步驟3:編寫log4j2配置文件

—— 見下文

(2)slf4j + log4j2

步驟1:配置mybatis文件

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

步驟2:導(dǎo)入相關(guān)依賴

<!-- slf4j日志門面 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
		<!-- 引入slf4j對(duì)應(yīng)log4j2的橋接器 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <scope>runtime</scope>
            <version>2.11.0</version>
        </dependency>
        <!-- log4j2日志實(shí)面(日志實(shí)現(xiàn)框架) -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <scope>runtime</scope>
            <version>2.11.0</version>
        </dependency>

步驟3:編寫log4j2配置文件

—— 見下文

3.2 log4j2配置文件

(1)配置文件格式

注意配置文件命名格式

(2)配置文件內(nèi)容(只展示控制臺(tái)輸出和文件輸出)

log4j2從和log4j的組件含義大致相同,只是Appender組件子組件名稱不同,功能實(shí)現(xiàn)來(lái)說,主要由三大組件組成:Logger、Appender、Layout。(對(duì)應(yīng)關(guān)系如下:)

  • Logger是日志記錄器(也可以說是日志級(jí)別)
  • Appender是日志輸出目的地
  • Layout是日志輸出格式控制器

一個(gè)日志記錄器可以對(duì)應(yīng)多個(gè)輸出目的地,每個(gè)輸出目的地有特定的輸出格式。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
<!--        日志輸出到控制臺(tái)-->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="[%t] %-5level %logger{36} - %msg%n"/>
        </Console>
<!--        日志輸出到文件-->
        <File name="LOGFILE" fileName="d:\mybatis.log" append="true">
            <PatternLayout pattern="[%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
<!--        自定義日志記錄器-->
        <Logger name="com.j2205.wangwenfei.mapper" level="trace" additivity="false">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="LOGFILE"/>
        </Logger>
<!--        根日志記錄器-->
        <Root level="error" >
            <AppenderRef ref="CONSOLE"/>
        </Root>
    </Loggers>
</Configuration>

(3)log4j2 配置文件含義

Loggers 指定logger,logger與appeder進(jìn)行關(guān)聯(lián),將logger中的日志輸出到appender,由appender實(shí)現(xiàn)日志的控制臺(tái)輸出或者文件記錄。

  • Root 用來(lái)指定項(xiàng)目的根日志,如果沒有單獨(dú)指定Logger,那么就會(huì)默認(rèn)使用該Root日志輸出
  • level 日志輸出級(jí)別,共有8個(gè)級(jí)別,按照從低到高為:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
  • AppenderRef用來(lái)指定該日志輸出到哪個(gè)Appender.(可以配置多項(xiàng))。

Logger 自定義的子日志

  • level 日志輸出級(jí)別,共有8個(gè)級(jí)別,按照從低到高為:All < Trace < Debug < Info < Warn < Error < Fatal < OFF。
  • name 用來(lái)指定該Logger所適用的類或者類所在的包全路徑,繼承自Root節(jié)點(diǎn)。
  • additivity 日志是否在父Logger中輸出。
  • AppenderRef用來(lái)指定該日志輸出到哪個(gè)Appender,如果沒有指定,就會(huì)默認(rèn)繼承自Root.如果指定了,那么會(huì)在指定的這個(gè)Appender和Root的Appender中都會(huì)輸出,此時(shí)我們可以設(shè)置Logger的additivity="false"只在自定義的Appender中進(jìn)行輸出。

總結(jié)

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

相關(guān)文章

  • 使用Maven Helper解決Maven插件沖突的方法

    使用Maven Helper解決Maven插件沖突的方法

    這篇文章主要介紹了使用Maven Helper解決Maven插件沖突的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-12-12
  • idea配置tomcat,idea配置web下lib的包詳解

    idea配置tomcat,idea配置web下lib的包詳解

    這篇文章主要介紹了idea配置tomcat,idea配置web下lib的包,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • IDEA如何設(shè)置忽略git提交的文件

    IDEA如何設(shè)置忽略git提交的文件

    這篇文章主要介紹了IDEA如何設(shè)置忽略git提交的文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解決mybatis無(wú)法給帶有下劃線屬性賦值問題

    解決mybatis無(wú)法給帶有下劃線屬性賦值問題

    這篇文章主要介紹了解決mybatis無(wú)法給帶有下劃線屬性賦值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot啟動(dòng)指定profile的多種方式

    SpringBoot啟動(dòng)指定profile的多種方式

    這篇文章主要介紹了SpringBoot啟動(dòng)指定profile的多種方式,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 淺析JDBC的使用方法

    淺析JDBC的使用方法

    這篇文章主要介紹了JDBC的使用方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • SpringBoot整合dataworks的實(shí)現(xiàn)過程

    SpringBoot整合dataworks的實(shí)現(xiàn)過程

    這篇文章主要介紹了SpringBoot整合dataworks的實(shí)現(xiàn)過程,實(shí)現(xiàn)主要是編寫工具類,如果需要?jiǎng)t可以配置成SpringBean,注入容器即可使用,需要的朋友可以參考下
    2022-08-08
  • Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)

    Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)

    下面小編就為大家?guī)?lái)一篇Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-08-08
  • 淺析Java?NIO?直接緩沖區(qū)和非直接緩沖區(qū)

    淺析Java?NIO?直接緩沖區(qū)和非直接緩沖區(qū)

    本篇文章主要為大家介紹了Java?NIO?中直接緩沖區(qū)和非直接緩沖區(qū)的定義以及使用流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Spring Security入門demo案例

    Spring Security入門demo案例

    Spring Security是一個(gè)高度自定義的安全框架,本文主要介紹了Spring Security入門,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論