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

logback使用filter過濾日志操作

 更新時(shí)間:2020年09月18日 09:51:07   作者:justry_deng  
這篇文章主要介紹了logback使用filter過濾日志操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

筆者語錄: 我發(fā)現(xiàn)我喜歡搗鼓一些小玩意兒,雖然官網(wǎng)(見文末)寫得很明白了,但是咱們對感興趣的部分來敲一遍代碼好吧。

過濾器簡介:

簡介

logback具有過濾器支持。logbcak允許給日志記錄器appender配置一個(gè)或多個(gè)Filter(或者給整體配置一個(gè)或多個(gè)TurboFilter),來控制:當(dāng)滿足過濾器指定的條件時(shí),才記錄日志(或不滿足條件時(shí),拒絕記錄日志)。logback支持自定義過濾器,當(dāng)然logback也自帶了一些常用的過濾器,在絕大多數(shù)時(shí)候,自帶的過濾器其實(shí)就夠用了,一般是不需要自定義過濾器的。

logback提供的過濾器支持主要分兩大類

ch.qos.logback.core.filter.Filter

ch.qos.logback.classic.turbo.TurboFilter

過濾器 來源 說明 相對常用
LevelFilter Filter 對指定level的日志進(jìn)行記錄(或不記錄),對不等于指定level的日志不記錄(或進(jìn)行記錄)
ThresholdFilter Filter 對大于或等于指定level的日志進(jìn)行記錄(或不記錄),對小于指定level的日志不記錄(或進(jìn)行記錄)
提示:info級別是大于debug的
EvaluatorFilter Filter 對滿足指定表達(dá)式的日志進(jìn)行記錄(或不記錄),對不滿足指定表達(dá)式的日志不作記錄(或進(jìn)行記錄)
MDCFilter TurboFilter 若MDC域中存在指定的key-value,則進(jìn)行記錄,否者不作記錄
DuplicateMessageFilter TurboFilter 根據(jù)配置不記錄多余的重復(fù)的日志
MarkerFilter TurboFilter 針對帶有指定標(biāo)記的日志,進(jìn)行記錄(或不作記錄)

若過濾器已經(jīng)返回了需要記錄,那么就一定會(huì)對該日志進(jìn)行記錄(不論當(dāng)前日志的level是否大于等于系統(tǒng)設(shè)置的最低日志級別)。

TurboFilter的性能是優(yōu)于Filter的,這是因?yàn)門urboFilter的作用時(shí)機(jī)是在創(chuàng)建日志事件ILoggingEvent對象之前,而Filter的作用時(shí)機(jī)是在創(chuàng)建之后。若一個(gè)日志注定是會(huì)被過濾掉不記錄的,那么創(chuàng)建ILoggingEvent對象(包括后續(xù)的參數(shù)組裝方法調(diào)用等)這個(gè)步驟無疑是非常消耗性能的。

過濾器的FilterReply狀態(tài)枚舉:

對于Filter而言,需不需要記錄日志,取決于ch.qos.logback.core.filter.Filter#decide方法的返回:

Filter與TurboFilter自帶的幾種常用過濾器

對于TurboFilter而言,需不需要記錄日志,取決于ch.qos.logback.classic.turbo.TurboFilter#decide方法的返回:

可以看到,返回的都是FilterReply這個(gè)枚舉:

FilterReply有三種枚舉值:

DENY:表示不用看后面的過濾器了,這里就給拒絕了,不作記錄。

NEUTRAL:表示需不需要記錄,還需要看后面的過濾器。若所有過濾器返回的全部都是NEUTRAL,那么需要記錄日志。

ACCEPT:表示不用看后面的過濾器了,這里就給直接同意了,需要記錄。

過濾器的使用(示例):

使用LevelFilter的logback.xml(示例):

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

使用ThresholdFilter的logback.xml(示例):

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

使用EvaluatorFilter的logback.xml(示例):

需要引入額外的解析庫依賴janino:

<dependency>
  <groupId>org.codehaus.janino</groupId>
  <artifactId>janino</artifactId>
  <version>3.1.2</version>
</dependency>

logbaxk.xml

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

使用MDCFilter的logback.xml(示例):

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

自定義過濾器:

自定義Filter:

編寫自定義Filter

在logback.xml中配置使用此過濾器

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

自定義TurboFilter:

編寫自定義TurboFilter

在logback.xml中配置使用此過濾器

測試一下:

編寫測試方法:

運(yùn)行方法,產(chǎn)出日志:

logback使用filter過濾日志,初步學(xué)習(xí)完畢!

以上這篇logback使用filter過濾日志操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot常見外部配置文件方式詳析

    Spring Boot常見外部配置文件方式詳析

    這篇文章主要給大家介紹了關(guān)于Spring Boot常見外部配置文件方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 10道springboot常見面試題

    10道springboot常見面試題

    這篇文章主要為大家詳細(xì)介紹了10道springboot常見面試題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java中的==使用方法詳解

    Java中的==使用方法詳解

    這篇文章主要介紹了Java中“==”的使用方法,,==可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中,equals()是方法,只能用于引用數(shù)據(jù)類型,需要的朋友可以參考下
    2022-09-09
  • SpringBoot靜態(tài)資源及原理解析

    SpringBoot靜態(tài)資源及原理解析

    這篇文章主要介紹了SpringBoot靜態(tài)資源及原理解析,當(dāng)創(chuàng)建一個(gè)jar工程時(shí),想引入css等靜態(tài)資源時(shí),需要遵守SpringBoot的靜態(tài)資源映射關(guān)系,通過WebMvcAutoConfiguration查看靜態(tài)配置資源的規(guī)則,需要的朋友可以參考下
    2023-12-12
  • java學(xué)習(xí)筆記之eclipse+tomcat 配置

    java學(xué)習(xí)筆記之eclipse+tomcat 配置

    俗話說:工欲善其事必先利其器,既然要學(xué)習(xí)java,首先把java的開發(fā)環(huán)境搗鼓一下吧,這里我們來談?wù)別clipse+tomcat的配置方法。
    2014-11-11
  • Spring中的路徑匹配器AntPathMatcher詳解

    Spring中的路徑匹配器AntPathMatcher詳解

    這篇文章主要介紹了Spring中的路徑匹配器AntPathMatcher詳解,Spring的PathMatcher路徑匹配器接口,用于支持帶通配符的資源路徑匹配,本文提供了部分實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-09-09
  • idea2020.2卡死在reading maven projects

    idea2020.2卡死在reading maven projects

    這篇文章主要介紹了idea2020.2卡死在reading maven projects,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringBoot如何使用@Aspect注解實(shí)現(xiàn)AOP

    SpringBoot如何使用@Aspect注解實(shí)現(xiàn)AOP

    這篇文章主要介紹了SpringBoot如何使用@Aspect注解實(shí)現(xiàn)AOP問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • ObjectMapper 如何忽略字段大小寫

    ObjectMapper 如何忽略字段大小寫

    這篇文章主要介紹了使用ObjectMapper實(shí)現(xiàn)忽略字段大小寫操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Flink入門級應(yīng)用域名處理示例

    Flink入門級應(yīng)用域名處理示例

    這篇文章主要介紹了一個(gè)比較簡單的入門級Flink應(yīng)用,代碼很容易寫,主要用到的算子有FlatMap、KeyBy、Reduce,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評論

威海市| 深水埗区| 托克托县| 手机| 安顺市| 鸡泽县| 临海市| 吉安市| 瑞昌市| 那曲县| 淄博市| 松江区| 漳州市| 建阳市| 浦县| 雷波县| 苏尼特左旗| 江达县| 抚宁县| 驻马店市| 肇源县| 怀柔区| 沙洋县| 广宗县| 辉南县| 繁峙县| 新巴尔虎左旗| 遂川县| 高唐县| 新绛县| 乐亭县| 灌云县| 来安县| 斗六市| 昔阳县| 丰原市| 阿勒泰市| 封开县| 澎湖县| 吴川市| 枣强县|