Java EvaluatorFilter-class And Method Code Example


Here is an example of how to use the EvaluatorFilter class from the logback library in Java:

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.EvaluatorFilter;
import ch.qos.logback.core.spi.FilterReply;
import ch.qos.logback.core.status.InfoStatus;
import ch.qos.logback.evaluator.ExpressionEvaluator;
import ch.qos.logback.evaluator.joran.EvaluatorRule;

public class Example {
    public static void main(String[] args) {
        Logger logger = (Logger) LoggerFactory.getLogger("ExampleLogger");
        EvaluatorFilter<ILoggingEvent> filter = new EvaluatorFilter<ILoggingEvent>();
        filter.setContext(logger.getLoggerContext());
        filter.setEvaluator(new ExpressionEvaluator());
        filter.addEvaluatorRule(new EvaluatorRule("loggerName.startsWith(\"com.example\")", 
                                FilterReply.ACCEPT, FilterReply.DENY));
        logger.addFilter(filter);

        logger.debug("This message should be filtered");
        logger.info("This message should be filtered");
        logger.debug("This message should not be filtered");
        logger.info("This message should not be filtered");
    }
}

This example creates a EvaluatorFilter object and sets the filter context to the logger context of the ExampleLogger. It also sets the evaluator to be used, in this case it uses ExpressionEvaluator and adds a rule to the filter, which accept only if loggerName starts with "com.example" and deny all the other messages. The filter is then added to the logger, so that all the events logged through it will go through the filter. After that it logs 4 messages, two of them should be filtered and the other two should be passed through.

Please note that

  • You should import the relevant classes for logback
  • This is just an example and it does not include the full context of a logging application.
  • The provided code is missing the import statments and methods to get logger instance