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

利用logback filter過濾某個類 屏蔽某個類

 更新時間:2021年07月29日 14:35:30   作者:FFITD  
這篇文章主要介紹了利用logback filter過濾某個類 屏蔽某個類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

logback filter過濾某個類 屏蔽某個類

使用logback配置日志文件,有的時候需要我們過濾或者屏蔽掉某個類的日志,便可以通過以下方法實現(xiàn)

添加JaninoEventEvaluator所需要的依賴包

<!-- https://mvnrepository.com/artifact/org.codehaus.janino/janino -->
        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>3.1.2</version>
        </dependency>

logback中添加相應(yīng)過濾條件

<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
                <evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator"> 
                    <expression>logger.contains("UserController")</expression>
                </evaluator>
                <OnMismatch>NEUTRAL</OnMismatch>
                <OnMatch>DENY</OnMatch>
            </filter>
            ............
</appender>

語句<expression>中含義是是否logger名包含UserController,返回一個Boolean值,當(dāng)<OnMatch>時不進行l(wèi)og記錄

LogBack的filter的應(yīng)用

最近在做業(yè)務(wù)數(shù)據(jù)的采集。遇到了一個問題,那就是如何通過記錄日志的方式捕獲需要的業(yè)務(wù)數(shù)據(jù)(這里我需要的是某個對象的json格式的數(shù)據(jù))。我們知道如果采用log.info的形式記錄日志,盡管我們可以寫多個appender讓info級別的日志信息輸出到兩個不同的文件,但是記錄業(yè)務(wù)數(shù)據(jù)的文件里面也會有其他info級別的日志信息。那么如何過濾呢,就用到了LogBack的filter。

LogbackFilter介紹

lockback的過濾器可以過濾記錄日志的內(nèi)容,然后返回FilterReply類型的枚舉類。從而將不符合條件的日志信息過濾掉。

Logback提供兩類Filter,一類是Regular Filter;另外一類是Turbo Filter。

Regular Filter主要應(yīng)用在appeder上,只在appender級別起作用,Appender實例上可以綁定一個Regular Filter實例鏈。Regular Filter繼承實現(xiàn)”ch.qos.logback.core.filter.Filter”類,自定義自己的regular filter需要繼承ch.qos.logback.core.filter.Filter類,并實現(xiàn)decide()方法。

TurboFilter對象綁定到日志記錄上下文。因此,不僅在使用給定的appender時調(diào)用它們,而且每次都發(fā)出日志記錄請求。它們的范圍比附加到附加器的過濾器更寬。更重要的是,它們在LoggingEvent對象創(chuàng)建之前被調(diào)用 。 TurboFilter對象不需要實例化日志記錄事件來過濾日志記錄請求。因此,turbo過濾器旨在用于記錄事件的高性能過濾,甚至在創(chuàng)建事件之前。要實現(xiàn)該類型的filter需要繼承ch.qos.logback.classic.turbo.TurboFilter;類具體的實現(xiàn)可參考LogBack官網(wǎng)-過濾器實現(xiàn)

自定義regular Filter

由于我的業(yè)務(wù)是指針對info級別的日志所以沒必要實現(xiàn)全局的turboFiter,這里只給出regular Filter的實現(xiàn)

下面是類代碼

package com.qf58.srm.pub;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
/**
 * @Author: WangZhan
 * @Description:
 * @Date Created in 11:53 2018/7/26.
 */
public class BdLogMessageFilter extends Filter<ILoggingEvent> {
    @Override
    public FilterReply decide(ILoggingEvent iLoggingEvent) {
        if (iLoggingEvent.getMessage() != null && iLoggingEvent.getMessage().startsWith("{") && iLoggingEvent
                .getMessage().endsWith("}")){
            return FilterReply.ACCEPT;
        }
        return  FilterReply.DENY;
    }
}

下面是logback配置

這里寫圖片描述

最后運行自己的程序就可以看到打印效果。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java學(xué)習(xí)指南之字符串與正則表達式

    java學(xué)習(xí)指南之字符串與正則表達式

    在日常Java后端開發(fā)過程中,免不了對數(shù)據(jù)字段的解析,自然就少不了對字符串的操作,這其中就包含了正則表達式這一塊的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)指南之字符串與正則表達式的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 詳解Spring?Boot中@PostConstruct的使用示例代碼

    詳解Spring?Boot中@PostConstruct的使用示例代碼

    在Java中,@PostConstruct是一個注解,通常用于標記一個方法,它表示該方法在類實例化之后(通過構(gòu)造函數(shù)創(chuàng)建對象之后)立即執(zhí)行,這篇文章主要介紹了詳解Spring?Boot中@PostConstruct的使用,需要的朋友可以參考下
    2023-09-09
  • Java基于TCP協(xié)議的Socket通信

    Java基于TCP協(xié)議的Socket通信

    本文詳細講解了Java基于TCP協(xié)議的Socket通信,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java中Stream?Filter多條件篩選過濾代碼舉例

    Java中Stream?Filter多條件篩選過濾代碼舉例

    這篇文章主要給大家介紹了關(guān)于Java中Stream?Filter多條件篩選過濾的相關(guān)資料,Java Stream中的filter方法可以使用多個條件來過濾數(shù)據(jù),文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-12-12
  • java實現(xiàn)文件上傳的詳細步驟

    java實現(xiàn)文件上傳的詳細步驟

    文件上傳是用戶將本地文件通過Web頁面提交到服務(wù)器的過程,涉及客戶端、服務(wù)器端、上傳表單等組件,在SpringBoot中,通過MultipartFile接口處理上傳文件,并將其保存在服務(wù)器,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • Java常見內(nèi)存溢出異常分析與解決

    Java常見內(nèi)存溢出異常分析與解決

    本篇文章主要分析了JAVA程序內(nèi)存溢出問題原因,較為詳細的說明了java導(dǎo)致程序內(nèi)存溢出的原因與解決方法,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • 基于SpringBoot生成二維碼的幾種實現(xiàn)方式

    基于SpringBoot生成二維碼的幾種實現(xiàn)方式

    本文將基于Spring Boot介紹兩種生成二維碼的實現(xiàn)方式,一種是基于Google開發(fā)工具包,另一種是基于Hutool來實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2022-03-03
  • 登陸驗證碼kaptcha結(jié)合spring boot的用法詳解

    登陸驗證碼kaptcha結(jié)合spring boot的用法詳解

    在一個web應(yīng)用中驗證碼是一個常見的元素。不管是防止機器人還是爬蟲都有一定的作用,下面這篇文章主要給大家介紹了登陸驗證碼kaptcha結(jié)合spring boot用法的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Java線程創(chuàng)建的四種方式總結(jié)

    Java線程創(chuàng)建的四種方式總結(jié)

    這篇文章主要介紹了Java線程創(chuàng)建的四種方式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 一文深入了解Java中的AtomicInteger類

    一文深入了解Java中的AtomicInteger類

    AtomicInteger是java并發(fā)包下面提供的原子類,主要操作的是int類型的整型,通過調(diào)用底層Unsafe的CAS等方法實現(xiàn)原子操作,這篇文章主要給大家介紹了關(guān)于如何通過一文深入了解Java中AtomicInteger類的相關(guān)資料,需要的朋友可以參考下
    2024-02-02

最新評論

黄石市| 通辽市| 房产| 邯郸市| 府谷县| 平陆县| 简阳市| 兴海县| 中西区| 铜川市| 清流县| 咸丰县| 汕尾市| 郓城县| 鄢陵县| 峡江县| 福安市| 凌源市| 慈溪市| 专栏| 宿迁市| 藁城市| 阿荣旗| 工布江达县| 乡宁县| 交口县| 筠连县| 常州市| 图片| 阜南县| 阳高县| 永州市| 新竹县| 诸城市| 花莲市| 鹤山市| 谢通门县| 横峰县| 和政县| 大城县| 利辛县|