Log4j2的常用配置-創(chuàng)新互聯(lián)

定義日志測(cè)試類:

創(chuàng)新互聯(lián)建站主營(yíng)潢川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),潢川h5微信小程序搭建,潢川網(wǎng)站營(yíng)銷推廣歡迎潢川等地區(qū)企業(yè)咨詢

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

logger.trace("我是trace信息");

logger.debug("我是debug信息");

logger.info("我是info信息");
logger.warn("我是warn信息");
logger.error("我是error信息");

logger.fatal("我是fatal信息");

1、log4j規(guī)定了默認(rèn)的幾個(gè)級(jí)別:trace<debug<info<warn<error<fatal。級(jí)別之間是包含的關(guān)系,如果設(shè)置的是trace,則大于等于這個(gè)級(jí)別的日志都會(huì)輸出。

2、Log4j有一個(gè)默認(rèn)的配置,它的日志級(jí)別是ERROR,只輸出到控制臺(tái)。

3、root沒有name屬性,root相當(dāng)于根節(jié)點(diǎn),所有的logger都繼承了root的log配置,如果沒有指定logger的級(jí)別,只能打印root級(jí)別以上的日志。

即使你在很多類里面通過類名.class.getName() 得到很多的logger,而且沒有在配置文件的loggers下面做配置,他們也都能夠輸出,因?yàn)樗麄兌祭^承了root的log配置。

如下設(shè)置,root的級(jí)別為error,

<root level="error" includeLocation="true">

     <appender-ref ref="Console"/>

</root>

<!-- 定義控制臺(tái)輸出 -->  Console這些節(jié)點(diǎn)不能隨便命名的。

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

    <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />

</Console>  

輸出結(jié)果:

2016-12-22 15:17:28.978 ERROR [main][Log4j2Test.java:15] - 我是error信息

2016-12-22 15:17:28.979 FATAL [main][Log4j2Test.java:16] - 我是fatal信息

如果修改控制臺(tái)輸出,加入如下:

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

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

則Console只輸出fatal級(jí)別以上的日志:

2016-12-22 15:19:05.945 FATAL [main][Log4j2Test.java:16] - 我是fatal信息  

設(shè)置指定類的日志輸出,如果設(shè)置級(jí)別為info,即使root的級(jí)別為error,指定類的info級(jí)別以上的扔能輸出,相當(dāng)于重寫了root。

<!--additivity開啟的話,如果這個(gè)logger也是滿足root的,所以會(huì)被打印兩遍。-->

  <logger name="test.Log4j2Test" level="info" additivity="false">

    <appender-ref ref="ERROR-APPENDER"/>

  </logger>

則test.Log4j2Test的所有info級(jí)別以上的日志會(huì)輸出到ERROR-APPENDER文件里,如果ERROR-APPENDER有設(shè)置:

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

則test.Log4j2Test只有滿足error以上級(jí)別的才會(huì)輸出到文件,要大于logger本身定義的info級(jí)別。

最終輸出root->logger->appender的級(jí)別限制。

如果test.Log4j2Test配置兩個(gè)AppenderReF,那么兩個(gè)都會(huì)記錄滿足level="debug"級(jí)別的日志,這樣會(huì)造成多處記錄日志,應(yīng)該開啟匹配過濾。

<logger name="test.Log4j2Test" level="debug" additivity="false">

           <AppenderReF ref="DEBUG-APPENDER"/>

           <AppenderReF ref="ERROR-APPENDER"/>

</logger>  

發(fā)郵件功能,只有error級(jí)別以上的才能發(fā)郵件,需要引入mail的jar包。

<SMTP name="Mail" subject="Error Log" to="to@qq.com" from="from@sina.cn" replyTo="from@sina.cn"

         smtpProtocol="smtp" smtpHost="smtp.sina.cn" smtpPort="25" bufferSize="50" smtpDebug="false"

         smtpPassword="***" smtpUsername="from@sina.cn">

</SMTP>

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

當(dāng)前名稱:Log4j2的常用配置-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article48/phjhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、外貿(mào)建站、建站公司

廣告

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

成都seo排名網(wǎng)站優(yōu)化