code: private void dispatch(final ProcessingMessage message) throws ProcessingException {
          final LogLevel level = message.getLogLevel();
  
          if (level.compareTo(exceptionThreshold) >= 0)
              throw message.asException();
          if (level.compareTo(currentLevel) > 0)
              currentLevel = level;
          if (level.compareTo(logLevel) >= 0)
              log(message);
      }
docs: Main dispatch method
  
  All messages logged go through this method. According to the report
  configuration, the message will either be ignored, logged or raise an
  exception.
  
  @param message the message to log
  @throws ProcessingException the message's level and report configuration
  require that an exception be thrown