aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-08 14:04:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-08 22:33:57 +0000
commitaf7d63b1f76fd3f7fa92ed15ae61ca47d9e13472 (patch)
treef5d043f008f30e4a75ce27adbc2c6298d3382b34
parent25b7bf6672be66bcbfe5760610dce7d3e866cdcc (diff)
downloadbitbake-af7d63b1f76fd3f7fa92ed15ae61ca47d9e13472.zip
bitbake-af7d63b1f76fd3f7fa92ed15ae61ca47d9e13472.tar.gz
bitbake-af7d63b1f76fd3f7fa92ed15ae61ca47d9e13472.tar.bz2
tinfoil: Ensure we clean up loggers
This is primarily paranoid but ensure we remove any loggers we setup either directly or indirectly so the initial state is restored after we exit. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/tinfoil.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/bb/tinfoil.py b/lib/bb/tinfoil.py
index fb2ee4a..fa95f63 100644
--- a/lib/bb/tinfoil.py
+++ b/lib/bb/tinfoil.py
@@ -322,14 +322,14 @@ class Tinfoil:
self.server_connection = None
self.recipes_parsed = False
self.quiet = 0
+ self.oldhandlers = self.logger.handlers[:]
if setup_logging:
# This is the *client-side* logger, nothing to do with
# logging messages from the server
- oldhandlers = self.logger.handlers[:]
bb.msg.logger_create('BitBake', output)
self.localhandlers = []
for handler in self.logger.handlers:
- if handler not in oldhandlers:
+ if handler not in self.oldhandlers:
self.localhandlers.append(handler)
def __enter__(self):
@@ -835,6 +835,12 @@ class Tinfoil:
self.server_connection.terminate()
self.server_connection = None
+ # Restore logging handlers to how it looked when we started
+ if self.oldhandlers:
+ for handler in self.logger.handlers:
+ if handler not in self.oldhandlers:
+ self.logger.handlers.remove(handler)
+
def _reconvert_type(self, obj, origtypename):
"""
Convert an object back to the right type, in the case