欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

apache中Log4j和Log4j2的區(qū)別有哪些

這篇文章將為大家詳細(xì)講解有關(guān)apache中Log4j和Log4j2的區(qū)別有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)建站堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),小程序開發(fā),軟件按需規(guī)劃網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

1、配置文件類型 

log4j是通過一個(gè).properties的文件作為主配置文件的,而現(xiàn)在的log4j 2則已經(jīng)棄用了這種方式,采用的是.xml,.json或者.jsn這種方式來做,可能這也是技術(shù)發(fā)展的一個(gè)必然性,畢竟properties文件的可閱讀性真的是有點(diǎn)差。

2、核心JAR包 

log4j只需要引入一個(gè)jar包即可,

<dependency>

    <groupId>log4j</groupId>

    <artifactId>log4j</artifactId>

    <version>1.2.17</version>

</dependency>

而log4j 2則是需要2個(gè)核心

<dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-core</artifactId>

    <version>2.5</version>

</dependency>

<dependency>

    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j-api</artifactId>

    <version>2.5</version>

</dependency>

大家發(fā)現(xiàn)沒,log4j和log4j 2的包路徑是不同的,Apache為了區(qū)分,包路徑都更新了,這樣大家甚至可以在一個(gè)項(xiàng)目中使用2個(gè)版本的日志輸出哦!(不過我想你們沒有那么調(diào)皮吧,嘿嘿)

3、文件渲染 

log4j想要生效,我們需要在web.xml中進(jìn)行配置,

 <listener>

    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

  </listener> <context-param>

    <param-name>log4jConfigLocation</param-name>

    <param-value>classpath:config/log4j.properties</param-value>

  </context-param>

  <context-param>

    <param-name>log4jRefreshInterval</param-name>

    <param-value>60000</param-value>

這段配置目的在于告訴工程去哪加載log4j的配置文件和定義一個(gè)掃描器,這樣可以隨心所欲的放置log4j配置文件。 

log4j2就比較簡單,以maven工程為例,我們只需要把log4j2.xml放到工程resource目錄下就行了。大家記住一個(gè)細(xì)節(jié)點(diǎn),是log4j2.xml,而不是log4j.xml,xml名字少個(gè)2都不行??!

喜歡做學(xué)問的小伙伴,有興趣可以去研究下,照我估計(jì)應(yīng)該是在log4j2的包里面配置死了,而且大家可以嘗試下怎么自定義log4j2.xml的位置。

4、Log調(diào)用 

log4j和log4j2調(diào)用都是很簡單的。 

log4j:

import org.apache.log4j.Logger;

private final Logger LOGGER = Logger.getLogger(Test.class.getName());

log4j2:

import org.apache.logging.log4j.Level;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

private static Logger logger = LogManager.getLogger(Test.class.getName());

5、配置文件方式 

最關(guān)鍵的最大的不同,那就是配置文件的區(qū)別了,大家具體使用的時(shí)候再根據(jù)你的情況進(jìn)行配置就行了。 

log4j2 例子如下:

<?xml version="1.0" encoding="UTF-8"?>    

<configuration status="error">  

<!--     先定義所有的appender -->  

    <appenders>  

<!--         這個(gè)輸出控制臺(tái)的配置 -->  

        <Console name="Console" target="SYSTEM_OUT">  

<!--             控制臺(tái)只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) -->  

            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>  

<!--             這個(gè)都知道是輸出日志的格式 -->  

            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  

        </Console>  

<!--         文件會(huì)打印出所有信息,這個(gè)log每次運(yùn)行程序會(huì)自動(dòng)清空,由append屬性決定,這個(gè)也挺有用的,適合臨時(shí)測試用 -->  

<!--         append為TRUE表示消息增加到指定文件中,false表示消息覆蓋指定的文件內(nèi)容,默認(rèn)值是true -->  

        <File name="log" fileName="log/test.log" append="false">  

            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  

        </File>  

<!--          添加過濾器ThresholdFilter,可以有選擇的輸出某個(gè)級別以上的類別  onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否則直接拒絕  -->  

        <File name="ERROR" fileName="logs/error.log">  

            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>  

            <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  

        </File>  

<!--         這個(gè)會(huì)打印出所有的信息,每次大小超過size,則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔 -->  

        <RollingFile name="RollingFile" fileName="logs/web.log"  

                     filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">  

            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  

            <SizeBasedTriggeringPolicy size="2MB"/>  

        </RollingFile>  

    </appenders>  

<!--     然后定義logger,只有定義了logger并引入的appender,appender才會(huì)生效 -->  

    <loggers>  

<!--         建立一個(gè)默認(rèn)的root的logger -->  

        <root level="trace">  

            <appender-ref ref="RollingFile"/>  

            <appender-ref ref="Console"/>  

            <appender-ref ref="ERROR" />  

            <appender-ref ref="log"/>  

        </root>  

    </loggers>  

</configuration>  

總結(jié): 

技術(shù)總是在不斷進(jìn)步的,我們不能局限在已知的知識領(lǐng)域中,要不斷去創(chuàng)新,去嘗試!

附:

日志的級別:     

我們現(xiàn)在要調(diào)用logger的方法,不過在這個(gè)Logger對象中,有很多方法,所以要先了解log4j的日志級別,log4j規(guī)定了默認(rèn)的幾個(gè)級別:trace<debug<info<warn<error<fatal等。這里要說明一下:  

級別之間是包含的關(guān)系,意思是如果你設(shè)置日志級別是trace,則大于等于這個(gè)級別的日志都會(huì)輸出。

基本上默認(rèn)的級別沒多大區(qū)別,就是一個(gè)默認(rèn)的設(shè)定。你可以通過它的API自己定義級別。你也可以隨意調(diào)用這些方法,不過你要在配置文件里面好好處理了,否則就起不到日志的作用了,而且也不易讀,相當(dāng)于一個(gè)規(guī)范,你要完全定義一套也可以,不用沒多大必要。從我們實(shí)驗(yàn)的結(jié)果可以看出,log4j默認(rèn)的優(yōu)先級為ERROR或者WARN(實(shí)際上是ERROR)  

這不同的級別的含義大家都很容易理解,這里就簡單介紹一下:

trace:  是追蹤,就是程序推進(jìn)以下,你就可以寫個(gè)trace輸出,所以trace應(yīng)該會(huì)特別多,不過沒關(guān)系,我們可以設(shè)置最低日志級別不讓他輸出。

debug:調(diào)試么,我一般就只用這個(gè)作為最低級別,trace壓根不用。是在沒辦法就用eclipse或者idea的debug功能就好了么。

info: 輸出一下你感興趣的或者重要的信息,這個(gè)用的最多了。

warn: 有些信息不是錯(cuò)誤信息,但是也要給程序員的一些提示,類似于eclipse中代碼的驗(yàn)證不是有error 

和warn(不算錯(cuò)誤但是也請注意,比如以下depressed的方法)。

error: 錯(cuò)誤信息。用的也比較多。

fatal:級別比較高了。重大錯(cuò)誤,這種級別你可以直接停止程序了,是不應(yīng)該出現(xiàn)的錯(cuò)誤么!不用那么緊張,其實(shí)就是一個(gè)程度的問題。

關(guān)于“apache中Log4j和Log4j2的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

本文題目:apache中Log4j和Log4j2的區(qū)別有哪些
標(biāo)題路徑:http://aaarwkj.com/article12/gopegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
欧美香蕉一区二区视频| 蜜臀av免费在线观看| 国产黄片大秀在线观看| 亚洲精品成人在线国产| 日韩精品一区二区av在线| 免费国产网站在线观看不卡| 免费观看欧美日韩论理电影| 四虎影视国产精品久久| 亚洲精品综合在线二区| 中文字幕日本人妻影视| 欧美人妻精品一区二区| 女同毛片一区二区三区| 国产精品久久久久久爽| 91午夜福利视频免费播放| 亚洲精品最新地址久久久| 天天爽天天看天天射天天操| 蜜臀av网站在线播放| 国产aaa级日本一区二区三区 | 亚洲不卡在线视频免费| 国产女主播福利在线播放| 亚洲精品一区二区三区中文字幕| 91九色国产老熟女乱子| 免费的黄色片带中文字幕| 大香蕉国产精品视频在线| 亚洲欧美日韩不卡一区二区| 蜜臀av一区二区三区人妻| 高潮的毛片激情久久精品| 亚洲性码不卡视频在线| 播放欧美日韩特黄大片| 欧美性色黄大片人与善| 精品视频偷拍一区二区三区| 国产激情视频在线观看你懂的| 91欧美在线激情视频| 青草视频在线播放免费| 亚洲熟妇av一区二区| 久久亚洲国产成人精品性色| 91内射视频在线播放| 日韩国产精品亚洲欧美在线| 国产欧美日韩国产精品| 久久国产精品必看狼人| 国产精品一级自拍视频|