26 lines
624 B
Python
26 lines
624 B
Python
![]() |
# -*- test-case-name: twisted.logger.test.test_capture -*-
|
||
|
# Copyright (c) Twisted Matrix Laboratories.
|
||
|
# See LICENSE for details.
|
||
|
|
||
|
"""
|
||
|
Context manager for capturing logs.
|
||
|
"""
|
||
|
|
||
|
from contextlib import contextmanager
|
||
|
from typing import Iterator, List, Sequence, cast
|
||
|
|
||
|
from twisted.logger import globalLogPublisher
|
||
|
from ._interfaces import ILogObserver, LogEvent
|
||
|
|
||
|
|
||
|
@contextmanager
|
||
|
def capturedLogs() -> Iterator[Sequence[LogEvent]]:
|
||
|
events: List[LogEvent] = []
|
||
|
observer = cast(ILogObserver, events.append)
|
||
|
|
||
|
globalLogPublisher.addObserver(observer)
|
||
|
|
||
|
yield events
|
||
|
|
||
|
globalLogPublisher.removeObserver(observer)
|