code: def add(self, *destinations):
          
          buffered_messages = None
          if not self._any_added:
              # These are first set of messages added, so we need to clear
              # BufferingDestination:
              self._any_added = True
              buffered_messages = self._destinations[0].messages
              self._destinations = []
          self._destinations.extend(destinations)
          if buffered_messages:
              # Re-deliver buffered messages:
              for message in buffered_messages:
                  self.send(message)
docs: Adds new destinations.
  
          A destination should never ever throw an exception. Seriously.
          A destination should not mutate the dictionary it is given.
  
          @param destinations: A list of callables that takes message
              dictionaries.