一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - logback使用filter過濾日志操作

logback使用filter過濾日志操作

2020-09-18 13:13justry_deng JAVA教程

這篇文章主要介紹了logback使用filter過濾日志操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

過濾器簡介:

簡介

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

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

ch.qos.logback.core.filter.Filter

logback使用filter過濾日志操作

ch.qos.logback.classic.turbo.TurboFilter

logback使用filter過濾日志操作

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

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

TurboFilter的性能是優于Filter的,這是因為TurboFilter的作用時機是在創建日志事件ILoggingEvent對象之前,而Filter的作用時機是在創建之后。若一個日志注定是會被過濾掉不記錄的,那么創建ILoggingEvent對象(包括后續的參數組裝方法調用等)這個步驟無疑是非常消耗性能的。

過濾器的FilterReply狀態枚舉:

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

logback使用filter過濾日志操作

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

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

logback使用filter過濾日志操作

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

logback使用filter過濾日志操作

FilterReply有三種枚舉值:

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

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

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

過濾器的使用(示例):

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

logback使用filter過濾日志操作

測試一下:

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

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

logback使用filter過濾日志操作

測試一下:

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

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

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

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

logbaxk.xml

logback使用filter過濾日志操作

測試一下:

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

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

測試一下:

logback使用filter過濾日志操作

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

自定義過濾器:

自定義Filter:

編寫自定義Filter

logback使用filter過濾日志操作

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

logback使用filter過濾日志操作

測試一下:

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

自定義TurboFilter:

編寫自定義TurboFilter

logback使用filter過濾日志操作

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

logback使用filter過濾日志操作

測試一下:

編寫測試方法:

logback使用filter過濾日志操作

運行方法,產出日志:

logback使用filter過濾日志操作

logback使用filter過濾日志,初步學習完畢!

以上這篇logback使用filter過濾日志操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/justry_deng/article/details/108074525

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久免费 | 国产真实伦对白在线播放 | 天天综合天天影视色香欲俱全 | 国产靠逼视频 | 无套日出白浆在线播放 | 国产成人成人一区二区 | 荡女淫春2未删减版 | 51香蕉视频 | 日本高清免费中文字幕不卡 | 全彩成人18h漫画 | 高清欧美videossexo免费 | 波多野结衣一区免费作品 | 精品久久久久久无码人妻国产馆 | 五月天狠狠| 97就去干 | 欧美草逼视频 | 日本aa大片在线播放免费看 | 国产大片免费在线观看 | 免费看全黄特黄毛片 | 成人性生交小说免费看 | 欧美在线成人免费国产 | 日本不卡视频免费 | 亚洲成年人在线观看 | 成年人在线免费观看视频网站 | 精品国产自在在线在线观看 | 99福利在线观看 | 青青草原国产一区二区 | 99re免费在线视频 | 大象传媒短视频网站 | 亚洲天堂影视 | 国产精品欧美一区二区 | 波多野结衣xxxxx在线播放 | 日本免费在线播放 | 久久偷拍人 | 国产成人精品曰本亚洲77美色 | 97国产影院 | 国产精品免费看香蕉 | 国产里番 | 女教师波多野结衣高清在线 | 黄瓜视频黄 | 亚洲日韩欧美一区二区在线 |