logback的LevelFilter日志過濾器源碼解讀
序
本文主要研究一下logback的LevelFilter
AbstractMatcherFilter
ch/qos/logback/core/filter/AbstractMatcherFilter.java
public abstract class AbstractMatcherFilter<E> extends Filter<E> { protected FilterReply onMatch = FilterReply.NEUTRAL; protected FilterReply onMismatch = FilterReply.NEUTRAL; final public void setOnMatch(FilterReply reply) { this.onMatch = reply; } final public void setOnMismatch(FilterReply reply) { this.onMismatch = reply; } final public FilterReply getOnMatch() { return onMatch; } final public FilterReply getOnMismatch() { return onMismatch; } }
AbstractMatcherFilter繼承了Filter,它定義了onMatch及onMismatch屬性
LevelFilter
ch/qos/logback/classic/filter/LevelFilter.java
public class LevelFilter extends AbstractMatcherFilter<ILoggingEvent> { Level level; @Override public FilterReply decide(ILoggingEvent event) { if (!isStarted()) { return FilterReply.NEUTRAL; } if (event.getLevel().equals(level)) { return onMatch; } else { return onMismatch; } } public void setLevel(Level level) { this.level = level; } public void start() { if (this.level != null) { super.start(); } } }
LevelFilter繼承了AbstractMatcherFilter,其decide判斷event的level等級是否與配置的level一致,一致則返回onMatch,否則返回onMismatch
示例
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender>
這里CONSOLE的appender定義了LevelFilter,當(dāng)level為ERROR級別時ACCEPT,否則DENY
小結(jié)
logback提供了LevelFilter,可以配置指定的level、onMatch、onMismatch屬性,用于設(shè)置指定appender的打印級別。
以上就是logback的LevelFilter的詳細(xì)內(nèi)容,更多關(guān)于logback的LevelFilter的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot項目嵌入RocketMQ的實現(xiàn)示例
本文主要介紹了SpringBoot項目嵌入RocketMQ的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05java打包成jar并執(zhí)行jar包中指定的main方法
這篇文章主要介紹了如何將java打包成可執(zhí)行的jar,并執(zhí)行jar包中指定的main方法的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03java逐行讀取文件(讀取文件每一行、按行讀取文件)附帶詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于java逐行讀取文件(讀取文件每一行、按行讀取文件)的相關(guān)資料,讀取文件是我們在日常工作中經(jīng)常遇到的一個需求,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09