code: private LoggingEvent buildEvent() {
      if (currentMap.size() == 0) {
        if (additionalLines.size() > 0) {
          for (Iterator iter = additionalLines.iterator();iter.hasNext();) {
            getLogger().info("found non-matching line: " + iter.next());
          }
        }
        additionalLines.clear();
        return null;
      }
      //the current map contains fields - build an event
      int exceptionLine = getExceptionLine();
      String[] exception = buildException(exceptionLine);
  
      //messages are listed before exceptions in additionallines
      if (additionalLines.size() > 0 && exception.length > 0) {
        currentMap.put(MESSAGE, buildMessage((String) currentMap.get(MESSAGE),
            exceptionLine));
      }
      LoggingEvent event = convertToEvent(currentMap, exception);
      currentMap.clear();
      additionalLines.clear();
      return event;
    }
docs: Construct a logging event from currentMap and additionalLines
  (additionalLines contains multiple message lines and any exception lines)
  <p>
  CurrentMap and additionalLines are cleared in the process
  
  @return event