logback的LevelFilter日志過濾器源碼解讀
更新時間:2023年11月21日 08:35:02 作者:codecraft
這篇文章主要為大家介紹了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,當level為ERROR級別時ACCEPT,否則DENY
小結
logback提供了LevelFilter,可以配置指定的level、onMatch、onMismatch屬性,用于設置指定appender的打印級別。
以上就是logback的LevelFilter的詳細內容,更多關于logback的LevelFilter的資料請關注腳本之家其它相關文章!
相關文章
JUC中Future及CompletableFuture的用法與說明
本文介紹了Future接口及其實現類FutureTask的使用方法,指出了其阻塞和CPU空轉問題,為了解決這些問題,介紹了CompletableFuture的異步任務編排,可以自動回調異步任務結束時的方法,解決了阻塞和輪詢問題,同時提供了鏈式調用、函數式編程等等提高編程效率2026-04-04
springboot(thymeleaf)中th:field和th:value的區(qū)別及說明
這篇文章主要介紹了springboot(thymeleaf)中th:field和th:value的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
Mybatis?sqlMapConfig.xml中的mappers標簽使用
這篇文章主要介紹了Mybatis?sqlMapConfig.xml中的mappers標簽使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。2022-01-01

