summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2020-07-22 00:40:27 +0100
committerGitHub <noreply@github.com>2020-07-22 00:40:27 +0100
commit15997618e21e2398fab20300b9380b0fce2b32d1 (patch)
treea7064d8172531a623d949b91918ac1586fa1e6e2
parentfix an incorrect comment (diff)
downloadsynapse-15997618e21e2398fab20300b9380b0fce2b32d1.tar.xz
Clean up PreserveLoggingContext (#7877)
This had some dead code and some just plain wrong docstrings.
-rw-r--r--changelog.d/7877.misc1
-rw-r--r--synapse/logging/context.py29
2 files changed, 14 insertions, 16 deletions
diff --git a/changelog.d/7877.misc b/changelog.d/7877.misc
new file mode 100644

index 0000000000..a62aa0329c --- /dev/null +++ b/changelog.d/7877.misc
@@ -0,0 +1 @@ +Clean up `PreserveLoggingContext`. diff --git a/synapse/logging/context.py b/synapse/logging/context.py
index 8b9c4e38bd..cbeeb870cb 100644 --- a/synapse/logging/context.py +++ b/synapse/logging/context.py
@@ -566,36 +566,33 @@ class LoggingContextFilter(logging.Filter): return True -class PreserveLoggingContext(object): - """Captures the current logging context and restores it when the scope is - exited. Used to restore the context after a function using - @defer.inlineCallbacks is resumed by a callback from the reactor.""" +class PreserveLoggingContext: + """Context manager which replaces the logging context - __slots__ = ["current_context", "new_context", "has_parent"] + The previous logging context is restored on exit.""" + + __slots__ = ["_old_context", "_new_context"] def __init__( self, new_context: LoggingContextOrSentinel = SENTINEL_CONTEXT ) -> None: - self.new_context = new_context + self._new_context = new_context def __enter__(self) -> None: - """Captures the current logging context""" - self.current_context = set_current_context(self.new_context) - - if self.current_context: - self.has_parent = self.current_context.previous_context is not None + self._old_context = set_current_context(self._new_context) def __exit__(self, type, value, traceback) -> None: - """Restores the current logging context""" - context = set_current_context(self.current_context) + context = set_current_context(self._old_context) - if context != self.new_context: + if context != self._new_context: if not context: - logger.warning("Expected logging context %s was lost", self.new_context) + logger.warning( + "Expected logging context %s was lost", self._new_context + ) else: logger.warning( "Expected logging context %s but found %s", - self.new_context, + self._new_context, context, )