'Exceptions raised by log observers are logged but the observer which
raised the exception remains registered with the publisher.  These
exceptions do not prevent the event from being sent to other observers
registered with the publisher.'

def test_erroneousErrors(self):

    L1 = []
    L2 = []
    def broken(event):
        (1 // 0)
    for observer in [L1.append, broken, L2.append]:
        log.addObserver(observer)
        self.addCleanup(log.removeObserver, observer)
    for i in range(3):
        L1[:] = []
        L2[:] = []
        log.msg("Howdy,    y'all.", log_trace=[])
        excs = self.flushLoggedErrors(ZeroDivisionError)
        del self.catcher[:]
        self.assertEqual(len(excs), 1)
        self.assertEqual(len(L1), 2)
        self.assertEqual(len(L2), 2)
        self.assertEqual(L1[0]['message'], ("Howdy,    y'all.",))
        self.assertEqual(L2[0]['message'], ("Howdy,    y'all.",))
