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

log4j 詳解異步日志的配置和測試

 更新時(shí)間:2017年01月20日 14:32:46   投稿:lqh  
這篇文章主要介紹了 log4j 詳解異步日志的配置和測試的相關(guān)資料,需要的朋友可以參考下

 log4j 詳解異步日志的配置和測試

日志可以幫助我們分析故障原因,做些數(shù)據(jù)挖掘的工作。最簡單的日志方法,就是自己寫個(gè)寫文件的方法,在需要打日志的時(shí)候調(diào)用下,但是這顯然不可能在實(shí)際工程上用。還有個(gè)問題,就是頻繁地打日志,會(huì)增加磁盤I/O,使得系統(tǒng)性能下降。這里用log4j這個(gè)庫來部署一個(gè)含有日志管理的輕量級的系統(tǒng),主要支持日志的異步寫和等級分類的功能,完成最低限度的日志需求。

首先,我們建立一個(gè)Maven工程,并且在pom.xml文件里面引入log4j的依賴:

<dependency> 
  <groupId>org.slf4j</groupId> 
  <artifactId>slf4j-log4j12</artifactId> 
  <version>1.7.2</version> 
</dependency> 


接著,我們在src/main/resources路徑下面創(chuàng)建一個(gè)配置文件:log4j.xml


其實(shí)xml配置文件的內(nèi)容是至關(guān)重要的,里面必須定義日志的等級、是否異步等屬性。這里我通過截圖來簡單說明幾個(gè)關(guān)鍵點(diǎn)。完整的配置文件會(huì)隨這篇博客一起上傳。


這里關(guān)于日志等級需要多解釋一下,這里的日志等級默認(rèn)是debug:

所以如果不像上圖中利用日志過濾器來定義日志等級,那么最后ERROR日志的會(huì)寫到INFO日志的文件里,導(dǎo)致日志管理混亂。所以需要來設(shè)置這個(gè)日志等級的問題。


這張圖需要解釋的不多,主要是異步日志的配置。

那么到這里,日志的配置基本就好了。而想要在程序里面引用直接就寫成:

然后調(diào)用log.info,log.error等方法就可以寫日志了。注意我們設(shè)了2KB的大小,因此日志會(huì)累計(jì)到2KB再去寫。所以并不是實(shí)時(shí)的,但這樣可以減少頻繁的磁盤I/O,在壓測的時(shí)候可以避免由于I/O所帶來的CPU的損耗。

接著我們寫一段簡單的測試程序來驗(yàn)證我們的配置是否正確。


這段代碼的功能很簡單:迭代計(jì)數(shù)到10W,然后將10的倍數(shù)寫到error日志里,非10的倍數(shù)寫到info日志里面。運(yùn)行該程序,就會(huì)在相應(yīng)的文件里打印出響應(yīng)的結(jié)果。具體的日志結(jié)果如下圖:


需要注意的是,當(dāng)天的日志不會(huì)馬上加上日期,隔了一天后會(huì)顯示日期(如何馬上顯示當(dāng)天的日期,樓主還沒搞定)。info和error日志中的內(nèi)容如下:


可見,通過我們之前之前的配置,我們可以按照我們的意思來正確地打印日志。ok,就先寫到這里。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java StringBuffer類與StringBuilder類用法實(shí)例小結(jié)

    Java StringBuffer類與StringBuilder類用法實(shí)例小結(jié)

    這篇文章主要介紹了Java StringBuffer類與StringBuilder類用法,結(jié)合實(shí)例形式總結(jié)分析了Java StringBuffer類與StringBuilder類的功能、原理及添加、刪除、替換、截取等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-03-03
  • Springboot集成Camunda使用Mysql介紹

    Springboot集成Camunda使用Mysql介紹

    大家好,本篇文章主要講的是Springboot集成Camunda使用Mysql介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 從Java的jar文件中讀取數(shù)據(jù)的方法

    從Java的jar文件中讀取數(shù)據(jù)的方法

    這篇文章主要介紹了從Java的jar文件中讀取數(shù)據(jù)的方法,實(shí)例分析了java檔案文件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • SpringBoot使用自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏過程詳細(xì)解析

    SpringBoot使用自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏過程詳細(xì)解析

    這篇文章主要介紹了SpringBoot自定義注解之脫敏注解詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 并發(fā)編程之Java內(nèi)存模型

    并發(fā)編程之Java內(nèi)存模型

    這篇文章主要介紹了Java并發(fā)編程之內(nèi)存模型,Java內(nèi)存模型中的順序一致性,主要介紹重排序與順序一致性內(nèi)存模型,下面文章將圍繞Java內(nèi)存模型展開內(nèi)容,需要的小伙伴可以參考一下
    2021-11-11
  • Spring核心IoC和AOP的理解

    Spring核心IoC和AOP的理解

    本文主要介紹了Spring核心IoC和AOP的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel是阿里巴巴開源的一款微服務(wù)流量控制組件,主要以流量為切入點(diǎn),從流量路由、流量控制、流量整形、熔斷降級、系統(tǒng)自適應(yīng)過載保護(hù)、熱點(diǎn)流量防護(hù)等多個(gè)維度來幫助開發(fā)者保障微服務(wù)的穩(wěn)定性,本文介紹Sentinel 斷路器在Spring Cloud使用,感興趣的朋友一起看看吧
    2025-02-02
  • Java實(shí)現(xiàn)文件上傳保存

    Java實(shí)現(xiàn)文件上傳保存

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件上傳保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java?Bean?作用域及它的幾種類型介紹

    Java?Bean?作用域及它的幾種類型介紹

    這篇文章主要介紹了Java?Bean作用域及它的幾種類型介紹,Spring框架作為一個(gè)管理Bean的IoC容器,那么Bean自然是Spring中的重要資源了,那Bean的作用域又是什么,接下來我們一起進(jìn)入文章詳細(xì)學(xué)習(xí)吧
    2022-09-09
  • 解決spring-data-jpa mysql建表編碼問題

    解決spring-data-jpa mysql建表編碼問題

    這篇文章主要介紹了解決spring-data-jpa mysql建表編碼問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論

乐陵市| 绥中县| 高阳县| 修武县| 中西区| 汤阴县| 天气| 阿拉善左旗| 武山县| 襄樊市| 吴旗县| 黎平县| 翁源县| 永新县| 黑山县| 武山县| 津市市| 阳西县| 铜梁县| 杨浦区| 江永县| 运城市| 隆昌县| 罗源县| 阿勒泰市| 闵行区| 金沙县| 盖州市| 延长县| 北宁市| 资兴市| 吐鲁番市| 长治县| 南阳市| 铅山县| 昌宁县| 交城县| 利辛县| 双桥区| 宁城县| 广昌县|