Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Add backwards compatibility codepath to LoggingContext. #7408

Merged
merged 6 commits into from
May 5, 2020
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/7408.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Clean up some LoggingContext code.
41 changes: 41 additions & 0 deletions synapse/logging/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import logging
import threading
import types
import warnings
from typing import TYPE_CHECKING, Optional, Tuple, TypeVar, Union

from typing_extensions import Literal
Expand Down Expand Up @@ -287,6 +288,46 @@ def __str__(self) -> str:
return str(self.request)
return "%s@%x" % (self.name, id(self))

@classmethod
def current_context(cls) -> LoggingContextOrSentinel:
"""Get the current logging context from thread local storage

This exists for backwards compatibility. ``current_context()`` should be
called directly.

Returns:
LoggingContext: the current logging context
"""
warnings.warn(
"synapse.logging.context.LoggingContext.current_context() is deprecated "
"in favor of synapse.logging.context.current_context().",
PendingDeprecationWarning,
clokep marked this conversation as resolved.
Show resolved Hide resolved
stacklevel=2,
)
return current_context()

@classmethod
def set_current_context(
cls, context: LoggingContextOrSentinel
) -> LoggingContextOrSentinel:
"""Set the current logging context in thread local storage

This exists for backwards compatibility. ``set_current_context()`` should be
called directly.

Args:
context(LoggingContext): The context to activate.
Returns:
The context that was previously active
"""
warnings.warn(
"synapse.logging.context.LoggingContext.set_current_context() is deprecated "
"in favor of synapse.logging.context.set_current_context().",
PendingDeprecationWarning,
stacklevel=2,
)
return set_current_context(context)

def __enter__(self) -> "LoggingContext":
"""Enters this logging context into thread local storage"""
old_context = set_current_context(self)
Expand Down