Improve logging for logcontext leaks. (#5288)

This commit is contained in:
Richard van der Hoff 2019-05-29 19:27:50 +01:00 committed by GitHub
parent 8541db741a
commit 3dcf2feba8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 9 deletions

1
changelog.d/5288.misc Normal file
View File

@ -0,0 +1 @@
Improve logging for logcontext leaks.

View File

@ -226,6 +226,8 @@ class LoggingContext(object):
self.request = request self.request = request
def __str__(self): def __str__(self):
if self.request:
return str(self.request)
return "%s@%x" % (self.name, id(self)) return "%s@%x" % (self.name, id(self))
@classmethod @classmethod
@ -274,12 +276,10 @@ class LoggingContext(object):
current = self.set_current_context(self.previous_context) current = self.set_current_context(self.previous_context)
if current is not self: if current is not self:
if current is self.sentinel: if current is self.sentinel:
logger.warn("Expected logging context %s has been lost", self) logger.warning("Expected logging context %s was lost", self)
else: else:
logger.warn( logger.warning(
"Current logging context %s is not expected context %s", "Expected logging context %s but found %s", self, current
current,
self
) )
self.previous_context = None self.previous_context = None
self.alive = False self.alive = False
@ -433,10 +433,14 @@ class PreserveLoggingContext(object):
context = LoggingContext.set_current_context(self.current_context) context = LoggingContext.set_current_context(self.current_context)
if context != self.new_context: if context != self.new_context:
logger.warn( if context is LoggingContext.sentinel:
"Unexpected logging context: %s is not %s", logger.warning("Expected logging context %s was lost", self.new_context)
context, self.new_context, else:
) logger.warning(
"Expected logging context %s but found %s",
self.new_context,
context,
)
if self.current_context is not LoggingContext.sentinel: if self.current_context is not LoggingContext.sentinel:
if not self.current_context.alive: if not self.current_context.alive: