code: protected boolean invokeMessageRouters(RoutedMessage routedMessage) {
  
          MessageRouter externalMsgRouter = externalMessageRouter.get();
          WsMessageRouter internalMsgRouter = internalMessageRouter.get();
  
          boolean retMe = true;
  
          try {
              /*
               * Need a recursion Counter for invokingMessageRouters
               * If an osgi framework debugging options is enabled then a message
               * is sent to sysout/syserr from wsMessageRouterImpl during the
               * Reentrant Read Write lock and will cause an infinite loop -- crash.
               *
               * Setting it to 2 to allows the "osgi" debug statement to occur once.
               * i.e Original message goes through and then osgi statement is emitted and is looped back once
               * and recursion counter will prevent any further statements.
               */
              if (!(counterForMessageRouter.incrementCount() > 2)) {
                  if (externalMsgRouter != null) {
                      retMe &= externalMsgRouter.route(routedMessage.getFormattedMsg(), routedMessage.getLogRecord());
                  }
                  if (internalMsgRouter != null) {
                      retMe &= internalMsgRouter.route(routedMessage);
                  } else {
                      String message = formatter.messageLogFormat(routedMessage.getLogRecord(), routedMessage.getFormattedVerboseMsg());
                      RoutedMessage specialRoutedMessage = new RoutedMessageImpl(routedMessage.getFormattedMsg(), routedMessage.getFormattedVerboseMsg(), message, routedMessage.getLogRecord());
                      synchronized (this) {
                          if (earlierMessages != null) {
                              earlierMessages.add(specialRoutedMessage);
                          }
                      }
                  }
              }
          } finally {
              counterForMessageRouter.decrementCount();
          }
          return retMe;
      }
docs: Route the message thru both the external (SPI) and internal MessageRouters.
  
  @return true if the message should be logged normally; false otherwise (meaning
  one of the LogHandlers specifically suppressed the message from normal logging).