code: @Override
      public boolean route(RoutedMessage routedMessage) {
  
          if (routedMessage == null) {
              return true;
          }
          //There can be many Reader locks, but only one writer lock.
          //This ReaderWriter lock is needed to avoid duplicate messages when the class is passing on the EarlyBuffer messages to the new WsLogHandler.
          RERWLOCK.readLock().lock();
          try {
              // Cache message for WsLogHandlers that haven't registered yet.
              if (earlierMessages != null) {
                  earlierMessages.add(routedMessage);
              }
  
              Set<String> routeAllMsgsToTheseLogHandlers = getLogHandlersForMsgId("*");
              if (routeAllMsgsToTheseLogHandlers != null) {
                  routeToAll(routedMessage, routeAllMsgsToTheseLogHandlers);
              }
              Set<String> logHandlerIds = getLogHandlersForMessage(routedMessage.getFormattedMsg());
              if (logHandlerIds == null) {
                  // There are no routing requirements for this msgId.
                  // Return true to tell the caller to log the msg normally.
                  return true;
              } else {
                  // Ensure console doesn't duplicate printing specific message that included in wtoMessages=*
              		if(routeAllMsgsToTheseLogHandlers != null) {
              			if(!logHandlerIds.equals(routeAllMsgsToTheseLogHandlers)) {
  	            			Set<String> tempLogHandlerIds = new HashSet<String>();
  	            			
  	            			for(String id : logHandlerIds) {
  	            				if(id.equals("DEFAULT") || id.equals("-DEFAULT") || id.equals("+DEFAULT") || !routeAllMsgsToTheseLogHandlers.contains(id)) {
  	            					tempLogHandlerIds.add(id);
  	            				}
  	            			}
  	            			return routeToAll(routedMessage, tempLogHandlerIds);
              			}else {
              				return true;
              			}
              		}else {
                          // Route to all LogHandlers in the wsLogHandlerService ConcurrentMap.
                          return routeToAll(routedMessage, logHandlerIds);
              		}
              }
          } finally {
              RERWLOCK.readLock().unlock();
          }
      }
docs: {@inheritDoc}