|
@@ -174,6 +174,7 @@ class LoggingProxy(object):
|
|
name = None
|
|
name = None
|
|
closed = False
|
|
closed = False
|
|
loglevel = logging.ERROR
|
|
loglevel = logging.ERROR
|
|
|
|
+ _recurse_protection = False
|
|
|
|
|
|
def __init__(self, logger, loglevel=None):
|
|
def __init__(self, logger, loglevel=None):
|
|
self.logger = logger
|
|
self.logger = logger
|
|
@@ -207,10 +208,17 @@ class LoggingProxy(object):
|
|
return map(wrap_handler, self.logger.handlers)
|
|
return map(wrap_handler, self.logger.handlers)
|
|
|
|
|
|
def write(self, data):
|
|
def write(self, data):
|
|
|
|
+ if self._recurse_protection:
|
|
|
|
+ # Logger is logging back to this file, so stop recursing.
|
|
|
|
+ return
|
|
"""Write message to logging object."""
|
|
"""Write message to logging object."""
|
|
data = data.strip()
|
|
data = data.strip()
|
|
if data and not self.closed:
|
|
if data and not self.closed:
|
|
- self.logger.log(self.loglevel, data)
|
|
|
|
|
|
+ self._recurse_protection = True
|
|
|
|
+ try:
|
|
|
|
+ self.logger.log(self.loglevel, data)
|
|
|
|
+ finally:
|
|
|
|
+ self._recurse_protection = False
|
|
|
|
|
|
def writelines(self, sequence):
|
|
def writelines(self, sequence):
|
|
"""``writelines(sequence_of_strings) -> None``.
|
|
"""``writelines(sequence_of_strings) -> None``.
|