Filter 两者都做什么<;过滤器>;及<;评估者>;在这个Logback中';s<;appender>;?

Filter 两者都做什么<;过滤器>;及<;评估者>;在这个Logback中';s<;appender>;?,filter,logback,marker,appender,evaluator,Filter,Logback,Marker,Appender,Evaluator,在我正在开发的这个遗留应用程序中,这里是logback.xml的摘录。 唉,我不习惯这个日志框架,我很难理解它的配置,尽管我在这里广泛阅读了与过滤器相关的页面: …以及只是扩展的布局: public class NotificationReferentielMailLayout extends PatternLayout { @Override public String getContentType() { return "text/html"; } }

在我正在开发的这个遗留应用程序中,这里是
logback.xml
的摘录。 唉,我不习惯这个日志框架,我很难理解它的配置,尽管我在这里广泛阅读了与过滤器相关的页面:

…以及只是扩展的布局:

public class NotificationReferentielMailLayout extends PatternLayout {
    @Override
    public String getContentType() {
        return "text/html";
    }
}
public class MarkerFilter extends AbstractMatcherFilter {

    Marker markerToMatch;

    public void start() {
        if (this.markerToMatch != null) {
            super.start();
        } else {
            addError(String.format("The marker property must be set for [%s]", getName()));
        }
    }

    public FilterReply decide(Object event) {
        Marker marker = ((ILoggingEvent) event).getMarker();
        if (!isStarted()) {
            return FilterReply.NEUTRAL;
        }

        if (marker == null) {
            return onMismatch;
        }

        if (markerToMatch.contains(marker)) {
            return onMatch;
        }
        return onMismatch;
    }

    public void setMarker(String markerStr) {
        if (markerStr != null) {
            markerToMatch = MarkerFactory.getMarker(markerStr);
        }
    }

}
public class NotificationReferentielMailLayout extends PatternLayout {
    @Override
    public String getContentType() {
        return "text/html";
    }
}