欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解

 更新時(shí)間:2023年11月15日 10:00:31   作者:立小研先森  
這篇文章主要介紹了Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解,在logback-classic中存在一個(gè)全局過(guò)濾器TurboFilter,TurboFilter是與LoggerContext綁定,會(huì)在會(huì)在其它過(guò)濾器之前執(zhí)行,需要的朋友可以參考下

開源日志SDK(純java版)

<!-- Java基于logback的日志組件SDK -->
<dependency>
    <groupId>io.github.mingyang66</groupId>
    <artifactId>emily-spring-boot-logger</artifactId>
    <version>4.3.6</version>
</dependency>
<!--Java通用日志組件SDK-->
<dependency>
  <groupId>io.github.mingyang66</groupId>
  <artifactId>oceansky-logger</artifactId>
  <version>4.3.6</version>
</dependency>

在logback-classic中存在一個(gè)全局過(guò)濾器TurboFilter,TurboFilter是與LoggerContext綁定,會(huì)在會(huì)在其它過(guò)濾器之前執(zhí)行;MarkerFilter是TurboFilter的一個(gè)子類,其作用是標(biāo)記日志是否記錄入文件之中,可以指定標(biāo)記的日志記錄到文件中;也可以指定標(biāo)記的日志拒絕記錄到文件中,其它未標(biāo)記的記錄入文件;

一、定義MarkerFilter初始化實(shí)例對(duì)象

    /**
     * 全局標(biāo)記過(guò)濾器,接受指定標(biāo)記的日志記錄到文件中
     *
     * @param context 上下文
     * @param marker  marker標(biāo)識(shí)
     * @return 標(biāo)記過(guò)濾器,將會(huì)接受被標(biāo)記的日志記錄到文件中
     */
    public MarkerFilter getAcceptMarkerFilter(Context context, String marker) {
        MarkerFilter filter = new MarkerFilter();
        //過(guò)濾器名稱
        filter.setName(StrUtils.join("AcceptMarkerFilter-", marker));
        //上下文
        filter.setContext(context);
        //日志過(guò)濾級(jí)別
        filter.setMarker(marker);
        //設(shè)置符合條件的日志接受
        filter.setOnMatch(FilterReply.ACCEPT.name());
        //不符合條件的日志拒絕
        filter.setOnMismatch(FilterReply.DENY.name());
        //添加內(nèi)部狀態(tài)信息
        filter.addError("Build AcceptMarkerFilter Success");
        //標(biāo)記為啟用狀態(tài)
        filter.start();
        return filter;
    }
    /**
     * 全局標(biāo)記過(guò)濾器,拒絕標(biāo)記的日志記錄到文件中
     *
     * @param context 上下文
     * @param marker  marker標(biāo)識(shí)
     * @return 標(biāo)記過(guò)濾器,將會(huì)拒絕被標(biāo)記的日志記錄到文件中
     */
    public MarkerFilter getDenyMarkerFilter(Context context, String marker) {
        MarkerFilter filter = new MarkerFilter();
        //過(guò)濾器名稱
        filter.setName(StrUtils.join("DenyMarkerFilter-", marker));
        //上下文
        filter.setContext(context);
        //日志過(guò)濾級(jí)別
        filter.setMarker(marker);
        //設(shè)置符合條件的日志接受
        filter.setOnMatch(FilterReply.DENY.name());
        //不符合條件的日志拒絕
        filter.setOnMismatch(FilterReply.ACCEPT.name());
        //添加內(nèi)部狀態(tài)信息
        filter.addError("Build DenyMarkerFilter Success");
        //標(biāo)記為啟用狀態(tài)
        filter.start();
        return filter;
    }

上述定義了一個(gè)指定標(biāo)記的日志會(huì)被記錄入文件的MarkerFilter過(guò)濾器,一個(gè)指定標(biāo)記的日志不會(huì)被記錄日志文件,其它日志文件會(huì)被記錄入文件。

二、將MarkerFilter添加到LoggerContext上下文

private static final LoggerContext LOGGER_CONTEXT = (LoggerContext) LoggerFactory.getILoggerFactory();
 context.addTurboFilter(LogbackFilter.getSingleton().getAcceptMarkerFilter(context, marker));
 context.addTurboFilter(LogbackFilter.getSingleton().getDenyMarkerFilter(context, marker));

上述代碼比較簡(jiǎn)單,詳情可以參考源碼;上述會(huì)將定義好的兩個(gè)全局過(guò)濾器添加到LoggerContext中,接下來(lái)就可以根據(jù)需要標(biāo)記日志,控制是否輸出到日志文件。

三、標(biāo)記日志使用示例

private static final Logger baseLogger = LoggerFactory.getLogger(LogbackController.class);
private static final Marker marker = MarkerFactory.getMarker("instance_marker");

baseLogger.error("--------error");
baseLogger.info("--------info");
baseLogger.debug("--------debug");
baseLogger.warn("--------warn");
baseLogger.trace("--------trace");

baseLogger.error(marker, "--------marker error");
baseLogger.info(marker, "--------marker info");
baseLogger.debug(marker, "--------marker debug");
baseLogger.warn(marker, "--------marker warn");
baseLogger.trace(marker, "--------marker trace");

上述示例如果指定的標(biāo)記設(shè)置為接受打印到日志文件,則你會(huì)在日志文件中、控制臺(tái)上看到帶有marker的日志信息;如果標(biāo)記的日志被設(shè)置為拒絕,則在日志文件、控制臺(tái)上看到的就是不帶marker的日志信息;

到此這篇關(guān)于Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解的文章就介紹到這了,更多相關(guān)logback標(biāo)記日志過(guò)濾器MarkerFilter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)小球碰撞功能

    java實(shí)現(xiàn)小球碰撞功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)小球碰撞功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • java分頁(yè)工具類的使用方法

    java分頁(yè)工具類的使用方法

    這篇文章主要為大家詳細(xì)介紹了java分頁(yè)工具類的使用方法,穩(wěn)定的分頁(yè)效果,包括導(dǎo)航頁(yè)碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 如何通過(guò)一張圖搞懂springBoot自動(dòng)注入原理

    如何通過(guò)一張圖搞懂springBoot自動(dòng)注入原理

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)一張圖搞懂springBoot自動(dòng)注入原理的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Spring實(shí)戰(zhàn)之獲取方法返回值操作示例

    Spring實(shí)戰(zhàn)之獲取方法返回值操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之獲取方法返回值操作,涉及spring配置文件與方法返回值操作相關(guān)使用技巧,需要的朋友可以參考下
    2019-12-12
  • SpringBoot利用自定義注解實(shí)現(xiàn)隱私數(shù)據(jù)脫敏(加密顯示)的解決方案

    SpringBoot利用自定義注解實(shí)現(xiàn)隱私數(shù)據(jù)脫敏(加密顯示)的解決方案

    這兩天在整改等保測(cè)出的問(wèn)題,里面有一個(gè)“用戶信息泄露”的風(fēng)險(xiǎn)項(xiàng)(就是后臺(tái)系統(tǒng)里用戶的一些隱私數(shù)據(jù)直接明文顯示了),其實(shí)指的就是要做數(shù)據(jù)脫敏,本文給大家介紹了SpringBoot利用自定義注解實(shí)現(xiàn)隱私數(shù)據(jù)脫敏(加密顯示)的解決方案,需要的朋友可以參考下
    2023-11-11
  • SpringBoot設(shè)置Session失效時(shí)間的解決方案

    SpringBoot設(shè)置Session失效時(shí)間的解決方案

    當(dāng)過(guò)期時(shí)間是大于1分鐘的時(shí)候是沒有什么問(wèn)題的,但是如果設(shè)置過(guò)期時(shí)間小于1分鐘,就會(huì)失效,這篇文章主要介紹了SpringBoot設(shè)置Session失效時(shí)間的解決方案,需要的朋友可以參考下
    2024-05-05
  • Spring使用xml方式整合第三方框架流程詳解

    Spring使用xml方式整合第三方框架流程詳解

    這篇文章主要介紹了Spring使用xml方式整合第三方框架流程,Spring會(huì)在應(yīng)用上下文中為某個(gè)bean尋找其依賴的bean,Spring中bean有三種裝配機(jī)制,分別是:在xml中顯式配置、在java中顯式配置、隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)裝配
    2023-02-02
  • Java CRM系統(tǒng)用戶登錄功能實(shí)現(xiàn)代碼實(shí)例

    Java CRM系統(tǒng)用戶登錄功能實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Java CRM系統(tǒng)用戶登錄功能實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring Bean的包掃描的實(shí)現(xiàn)方法

    Spring Bean的包掃描的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring Bean的包掃描的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Spring Security OAuth2集成短信驗(yàn)證碼登錄以及第三方登錄

    Spring Security OAuth2集成短信驗(yàn)證碼登錄以及第三方登錄

    這篇文章主要介紹了Spring Security OAuth2集成短信驗(yàn)證碼登錄以及第三方登錄,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論