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

利用logback filter過濾某個(gè)類 屏蔽某個(gè)類

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

logback filter過濾某個(gè)類 屏蔽某個(gè)類

使用logback配置日志文件,有的時(shí)候需要我們過濾或者屏蔽掉某個(gè)類的日志,便可以通過以下方法實(shí)現(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,返回一個(gè)Boolean值,當(dāng)<OnMatch>時(shí)不進(jìn)行l(wèi)og記錄

LogBack的filter的應(yīng)用

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

LogbackFilter介紹

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

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

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

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

自定義regular Filter

由于我的業(yè)務(wù)是指針對(duì)info級(jí)別的日志所以沒必要實(shí)現(xiàn)全局的turboFiter,這里只給出regular Filter的實(shí)現(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配置

這里寫圖片描述

最后運(yùn)行自己的程序就可以看到打印效果。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    一文深入了解Java中的AtomicInteger類

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

最新評(píng)論

常州市| 毕节市| 嘉义市| 比如县| 黑龙江省| 泽库县| 泽普县| 乌拉特中旗| 吉安县| 石棉县| 夹江县| 夏河县| 阜康市| 鄂温| 漠河县| 陕西省| 五大连池市| 乡宁县| 民和| 剑河县| 白水县| 将乐县| 宜川县| 海门市| 石泉县| 乌审旗| 南乐县| 宝鸡市| 盐山县| 津市市| 罗甸县| 广西| 临清市| 海丰县| 南投县| 义马市| 新化县| 荣昌县| 综艺| 嵊泗县| 安仁县|