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等級(jí)是否與配置的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級(jí)別時(shí)ACCEPT,否則DENY
小結(jié)
logback提供了LevelFilter,可以配置指定的level、onMatch、onMismatch屬性,用于設(shè)置指定appender的打印級(jí)別。
以上就是logback的LevelFilter的詳細(xì)內(nèi)容,更多關(guān)于logback的LevelFilter的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot項(xiàng)目嵌入RocketMQ的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot項(xiàng)目嵌入RocketMQ的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
java打包成jar并執(zhí)行jar包中指定的main方法
這篇文章主要介紹了如何將java打包成可執(zhí)行的jar,并執(zhí)行jar包中指定的main方法的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
java逐行讀取文件(讀取文件每一行、按行讀取文件)附帶詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于java逐行讀取文件(讀取文件每一行、按行讀取文件)的相關(guān)資料,讀取文件是我們在日常工作中經(jīng)常遇到的一個(gè)需求,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09

