code: public static void logReducedStackTrace(Logger logger, Exception exception) {
  		Exception here = new Exception();
  		String[] hereStrings = getStackFrames(here);
  		String[] throwableStrings = getStackFrames(exception);
  		
  		int linesToSkip = 1;
  		while (throwableStrings.length - linesToSkip > 0 && hereStrings.length - linesToSkip > 0) {
  			if (!StringUtils.equals(hereStrings[hereStrings.length-linesToSkip], throwableStrings[throwableStrings.length-linesToSkip])) {
  				break;
  			}
  			linesToSkip++;
  		}
  		for (int i = 0; i<=throwableStrings.length-linesToSkip; i++) {
  			logger.log(Level.SEVERE, throwableStrings[i]);
  		}
  	}
docs: Logs only the relevant part of the stack trace. For example
  if a getter fails it's irrelevant if the getter is called
  by a swing class or something else
  
  @param logger the logger where the output should go
  @param exception the exception to be printed