Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 52.15.133.37
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
twisted /
logger /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-11-28 06:59
test
[ DIR ]
drwxr-xr-x
2024-11-28 06:59
__init__.py
3.29
KB
-rw-r--r--
2022-02-07 13:12
_buffer.py
1.49
KB
-rw-r--r--
2022-02-07 13:12
_capture.py
624
B
-rw-r--r--
2022-02-07 13:12
_file.py
2.28
KB
-rw-r--r--
2022-02-07 13:12
_filter.py
6.73
KB
-rw-r--r--
2022-02-07 13:12
_flatten.py
4.88
KB
-rw-r--r--
2022-02-07 13:12
_format.py
11.6
KB
-rw-r--r--
2022-02-07 13:12
_global.py
8.44
KB
-rw-r--r--
2022-02-07 13:12
_interfaces.py
2.29
KB
-rw-r--r--
2022-02-07 13:12
_io.py
4.46
KB
-rw-r--r--
2022-02-07 13:12
_json.py
8.24
KB
-rw-r--r--
2022-02-07 13:12
_legacy.py
5.12
KB
-rw-r--r--
2022-02-07 13:12
_levels.py
2.92
KB
-rw-r--r--
2022-02-07 13:12
_logger.py
9.75
KB
-rw-r--r--
2022-02-07 13:12
_observer.py
3.17
KB
-rw-r--r--
2022-02-07 13:12
_stdlib.py
4.44
KB
-rw-r--r--
2022-02-07 13:12
_util.py
1.37
KB
-rw-r--r--
2022-02-07 13:12
Save
Rename
# -*- test-case-name: twisted.logger.test.test_observer -*- # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Basic log observers. """ from typing import Callable, Optional from zope.interface import implementer from twisted.python.failure import Failure from ._interfaces import ILogObserver, LogEvent from ._logger import Logger OBSERVER_DISABLED = ( "Temporarily disabling observer {observer} due to exception: {log_failure}" ) @implementer(ILogObserver) class LogPublisher: """ I{ILogObserver} that fans out events to other observers. Keeps track of a set of L{ILogObserver} objects and forwards events to each. """ def __init__(self, *observers: ILogObserver) -> None: self._observers = list(observers) self.log = Logger(observer=self) def addObserver(self, observer: ILogObserver) -> None: """ Registers an observer with this publisher. @param observer: An L{ILogObserver} to add. """ if not callable(observer): raise TypeError(f"Observer is not callable: {observer!r}") if observer not in self._observers: self._observers.append(observer) def removeObserver(self, observer: ILogObserver) -> None: """ Unregisters an observer with this publisher. @param observer: An L{ILogObserver} to remove. """ try: self._observers.remove(observer) except ValueError: pass def __call__(self, event: LogEvent) -> None: """ Forward events to contained observers. """ if "log_trace" not in event: trace: Optional[Callable[[ILogObserver], None]] = None else: def trace(observer: ILogObserver) -> None: """ Add tracing information for an observer. @param observer: an observer being forwarded to """ event["log_trace"].append((self, observer)) 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, ) def _errorLoggerForObserver(self, observer: ILogObserver) -> Logger: """ Create an error-logger based on this logger, which does not contain the given bad observer. @param observer: The observer which previously had an error. @return: A L{Logger} without the given observer. """ errorPublisher = LogPublisher( *(obs for obs in self._observers if obs is not observer) ) return Logger(observer=errorPublisher) @implementer(ILogObserver) def bitbucketLogObserver(event: LogEvent) -> None: """ I{ILogObserver} that does nothing with the events it sees. """