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

利用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的Jackson自定義序列化詳解

    Java的Jackson自定義序列化詳解

    這篇文章主要介紹了Java的Jackson自定義序列化詳解,對比序列化器,可以看到,使用@JsonValue注解已經(jīng)將Leader類的序列化方式改變了,進而影響了Country類,再來執(zhí)行test7()測試反序列化,結(jié)果與之前是一致的,需要的朋友可以參考下
    2023-11-11
  • 利用SpringBoot和LiteFlow解鎖復(fù)雜流程

    利用SpringBoot和LiteFlow解鎖復(fù)雜流程

    隨著業(yè)務(wù)的復(fù)雜化,企業(yè)需要更加高效、便捷地管理自己的業(yè)務(wù)流程,這就需要借助一些流程引擎實現(xiàn),今天,我們就來介紹一種基于Java語言開發(fā)的輕量級工作流引擎——LiteFlow,以及如何在Spring Boot框架中集成它,從而提高企業(yè)的工作效率和開發(fā)效率
    2023-06-06
  • Java獲取請求頭信息的操作步驟

    Java獲取請求頭信息的操作步驟

    這篇文章主要介紹了Java獲取請求頭信息,本文分步驟結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 詳解Mybatis極其(最)簡(好)單(用)的一個分頁插件

    詳解Mybatis極其(最)簡(好)單(用)的一個分頁插件

    這篇文章主要介紹了詳解Mybatis極其(最)簡(好)單(用)的一個分頁插件,非常具有實用價值,需要的朋友可以參考下。
    2016-12-12
  • SpringMVC實現(xiàn)參數(shù)校驗配置方法

    SpringMVC實現(xiàn)參數(shù)校驗配置方法

    這篇文章主要介紹了SpringMVC實現(xiàn)參數(shù)校驗的配置方式,Spring MVC會拋出MethodArgumentNotValidException異常,并將錯誤信息綁定到相應(yīng)的字段上,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 阿里資深技術(shù)專家:在各階段中3年經(jīng)驗的java程序員應(yīng)該具備哪些技術(shù)能力

    阿里資深技術(shù)專家:在各階段中3年經(jīng)驗的java程序員應(yīng)該具備哪些技術(shù)能力

    這篇文章主要介紹了阿里資深技術(shù)專家:在各階段中3年經(jīng)驗的java程序員應(yīng)該具備哪些技術(shù)能力,本文給大家列舉了一些內(nèi)容,大家可以根據(jù)自己需要有方法的掌握,感興趣的朋友跟隨小編一起看看吧
    2020-07-07
  • Redis中String字符串和sdshdr結(jié)構(gòu)體超詳細講解

    Redis中String字符串和sdshdr結(jié)構(gòu)體超詳細講解

    這篇文章主要介紹了Redis中String字符串和sdshdr結(jié)構(gòu)體,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-04-04
  • Java三種求水仙花數(shù)的方法

    Java三種求水仙花數(shù)的方法

    本篇文章通過求水仙花數(shù)的實例來讓大家對JAVA求數(shù)的概念和方法有更深入的理解和應(yīng)用,學(xué)習(xí)參考下吧。
    2018-02-02
  • Spring Cloud之配置中心的搭建

    Spring Cloud之配置中心的搭建

    這篇文章主要介紹了Spring Cloud之配置中心的搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

    淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

    這篇文章主要介紹了淺談JAVA工作流的優(yōu)雅實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評論