Overrides the egress function ror request logging.

    Args:
      envelope: An Element with the SOAP request data.
      http_headers: A dict of the current http headers.
      operation: The SoapOperation instance.
      binding_options: An options dict for the SOAP binding.

    Returns:
      A tuple of the envelope and headers.

def egress(self, envelope, http_headers, operation, binding_options):
    """Overrides the egress function ror request logging.

    Args:
      envelope: An Element with the SOAP request data.
      http_headers: A dict of the current http headers.
      operation: The SoapOperation instance.
      binding_options: An options dict for the SOAP binding.

    Returns:
      A tuple of the envelope and headers.
    """
    if self._logger.isEnabledFor(logging.INFO):
      service_name = operation.binding.wsdl.services.keys()[0]
      self._logger.info(_REQUEST_LOG_LINE, service_name, operation.name,
                        binding_options['address'])

    if self._logger.isEnabledFor(logging.DEBUG):
      http_headers_safe = http_headers.copy()
      if self._AUTHORIZATION_HEADER in http_headers_safe:
        http_headers_safe[self._AUTHORIZATION_HEADER] = self._REDACTED

      request_string = etree.tostring(envelope, pretty_print=True)
      safe_request = self._DEVELOPER_TOKEN_SUB.sub(
          self._REDACTED, request_string.decode('utf-8'))
      self._logger.debug(
          _REQUEST_XML_LOG_LINE, http_headers_safe, safe_request)

    return envelope, http_headers