def __call__(self, event):
        if "log_trace" in event:
            def trace(observer):
                """
                Add tracing information for an observer.

                @param observer: an observer being forwarded to
                @type observer: L{ILogObserver}
                """
                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,
            )
Forward events to contained observers.
dataset/ETHPy150Open twisted/twisted/twisted/logger/_observer.py/LogPublisher.__call__