'Forward events to contained observers.'

def __call__(self, event):

    if ('log_trace' in event):
        def trace(observer):
            '\n                                                                Add    tracing    information    for    an    observer.\n\n                                                                @param    observer:    an    observer    being    forwarded    to\n                                                                @type    observer:    L{ILogObserver}\n                                                                '
            event['log_trace'].append((self, observer))
    else:
        trace = None
    brokenObservers = []
    for observer in self._observers:
        if (trace is not None):
            trace(observer)
        try:
            observer(event)
        except Exception:
            brokenObservers.append((observer, Failure()))
    for (brokenObserver, failure) in brokenObservers:
        errorLogger = self._errorLoggerForObserver(brokenObserver)
        errorLogger.failure(OBSERVER_DISABLED, failure=failure, observer=brokenObserver)
