utils.SetupLogging: Remove previously setup handlers
authorMichael Hanselmann <hansmi@google.com>
Wed, 12 Nov 2008 12:51:54 +0000 (12:51 +0000)
committerMichael Hanselmann <hansmi@google.com>
Wed, 12 Nov 2008 12:51:54 +0000 (12:51 +0000)
If a logging function is called before the logging module is setup
using utils.SetupLogging, it calls logging.basicConfig, which adds
a StreamHandler, on its own. If we leave it in, all log output will
be printed twice on stderr. This patch makes sure to remove all
handlers before adding our own.

Reviewed-by: iustinp

lib/utils.py

index 47fe4cc..7884366 100644 (file)
@@ -1558,6 +1558,10 @@ def SetupLogging(logfile, debug=False, stderr_logging=False, program=""):
   root_logger = logging.getLogger("")
   root_logger.setLevel(logging.NOTSET)
 
+  # Remove all previously setup handlers
+  for handler in root_logger.handlers:
+    root_logger.removeHandler(handler)
+
   if stderr_logging:
     stderr_handler = logging.StreamHandler()
     stderr_handler.setFormatter(formatter)