LogbackFilter.java

package com.github.celldynamics.quimp;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;

/**
 * Filter that filters out packages that not belong to QuimP.
 * 
 * <p>Used for limiting log output when log is set globally for the whole IJ.
 * 
 * @author p.baniukiewicz
 *
 */
public class LogbackFilter extends Filter<ILoggingEvent> {

  @SuppressWarnings("unused")
  private String packageName;

  /**
   * Main constructor.
   */
  public LogbackFilter() {
    packageName = LogbackFilter.class.getPackage().getName().toLowerCase();
  }

  /*
   * (non-Javadoc)
   * 
   * @see ch.qos.logback.core.filter.Filter#decide(java.lang.Object)
   */
  @Override
  public FilterReply decide(ILoggingEvent event) {
    if (event.getLoggerName().toLowerCase().contains("quimp")) { // to catch plugins as well
      return FilterReply.NEUTRAL; // run next filters on QuimP
    } else {
      return FilterReply.DENY; // stop logging
    }
  }
}