docs: def send(self, target, nick, msg, msgtype, ignore_length=False, filters=None):
          """Send a message.
  
          Records the message in the log.
  
          """
          if not isinstance(msg, str):
              raise Exception("Trying to send a %s to irc, only strings allowed." % type(msg).__name__)
          if filters is None:
              filters = self.outputfilter[target]
          for i in filters:
              if target != self.config['core']['ctrlchan']:
                  msg = i(msg)
          # Avoid spam from commands that produce excessive output.
          if not ignore_length:
              # Ignore everything after the first 800 chars.
              msg = misc.truncate_msg(msg, 800)
  
          # We can't send messages > 512 bytes to irc.
          max_len = misc.get_max_length(target, msgtype)
          msgs = self.build_split_msg(msg, max_len)
  
          for i in msgs:
              self.do_log(target, nick, i, msgtype)
              if msgtype == 'action':
                  self.rate_limited_send('action', target, i)
              else:
                  self.rate_limited_send('privmsg', target, i)