[Checkins] SVN: grokproject/trunk/grokproject/template/bootstrap.py Avoid duplicate messages when running generated bootstrap.py.

Uli Fouquet uli at gnufix.de
Wed Sep 24 08:30:32 EDT 2008


Log message for revision 91421:
  Avoid duplicate messages when running generated bootstrap.py.

Changed:
  U   grokproject/trunk/grokproject/template/bootstrap.py

-=-
Modified: grokproject/trunk/grokproject/template/bootstrap.py
===================================================================
--- grokproject/trunk/grokproject/template/bootstrap.py	2008-09-24 12:06:19 UTC (rev 91420)
+++ grokproject/trunk/grokproject/template/bootstrap.py	2008-09-24 12:30:32 UTC (rev 91421)
@@ -20,8 +20,20 @@
 $Id: bootstrap.py 85041 2008-03-31 15:57:30Z andreasjung $
 """
 
-import os, shutil, sys, tempfile, urllib2
+import os, shutil, sys, tempfile, urllib2, logging
 
+def remove_old_logger_handlers():
+    # zc.buildout installs a new log stream on every call of
+    # main(). We remove any leftover handlers to avoid multiple output
+    # of same content (doubled lines etc.)
+    root_logger = logging.getLogger()
+    if 'zc.buildout' in root_logger.manager.loggerDict.keys():
+        logger = logging.getLogger('zc.buildout')
+        for handler in logger.handlers:
+            logger.removeHandler(handler)
+    return
+
+
 tmpeggs = tempfile.mkdtemp()
 
 try:
@@ -59,6 +71,7 @@
 ws.require('zc.buildout')
 import zc.buildout.buildout
 zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+remove_old_logger_handlers()
 shutil.rmtree(tmpeggs)
 
 # grokproject specific addition to standard bootstrap.py:



More information about the Checkins mailing list