'send(data)
Sends data.
If log level ``DEBUG`` is enabled, also prints out the data
received.
If it is not possible to send anymore because of a closed
connection, it raises ``exceptions.EOFError``
Examples:
>>> def p(x): print repr(x)
>>> t = tube()
>>> t.send_raw = p
>>> t.send(\'hello\')
\'hello\''

def send(self, data):

    if self.isEnabledFor(logging.DEBUG):
        self.debug(('Sent    %#x    bytes:' % len(data)))
        if (len(set(data)) == 1):
            self.indented(('%r    *    %#x' % (data[0], len(data))))
        elif all(((c in string.printable) for c in data)):
            for line in data.splitlines(True):
                self.indented(repr(line), level=logging.DEBUG)
        else:
            self.indented(fiddling.hexdump(data), level=logging.DEBUG)
    self.send_raw(data)
