code: public String getMessage(final Marker aMarker, final String aMessage, final Object... aDetails) {
          final String[] details = new String[aDetails.length];
          final String message;
  
          addMarker(aMarker);
  
          for (int index = 0; index < details.length; index++) {
              details[index] = updateMessage(aDetails[index].toString());
          }
  
          if (hasI18nKey(aMessage)) {
              message = updateMessage(getI18n(aMessage, details));
          } else if (details.length == 0) {
              message = updateMessage(aMessage);
          } else {
              message = updateMessage(StringUtils.format(aMessage, details));
          }
  
          clearMarker();
  
          return message;
      }
docs: Gets a message from the logger's backing resource bundle if what's passed in is a message key; if it's not then
  what's passed in is, itself, returned. If what's passed in is the same thing as what's returned, any additional
  details passed in are ignored.
  
  @param aMarker A marker than can affect logging behavior
  @param aMessage A message to check against the backing resource bundle
  @param aDetails An array of additional details
  @return A message value (potentially from the backing resource bundle)