[Checkins] SVN: zc.ngi/trunk/src/zc/ngi/wordcount.py Carefully close log file to avoid tear-down errors on windows.

Jim Fulton jim at zope.com
Tue Apr 14 11:08:49 EDT 2009


Log message for revision 99170:
  Carefully close log file to avoid tear-down errors on windows.
  

Changed:
  U   zc.ngi/trunk/src/zc/ngi/wordcount.py

-=-
Modified: zc.ngi/trunk/src/zc/ngi/wordcount.py
===================================================================
--- zc.ngi/trunk/src/zc/ngi/wordcount.py	2009-04-14 15:08:18 UTC (rev 99169)
+++ zc.ngi/trunk/src/zc/ngi/wordcount.py	2009-04-14 15:08:48 UTC (rev 99170)
@@ -54,7 +54,7 @@
             if data == 'Q':
                 connection.write('Q\n')
                 connection.write(zc.ngi.END_OF_DATA)
-                connection.control.close(lambda c: 1)
+                connection.control.close(lambda c: exit())
                 return
             elif data == 'C':
                 connection.write(zc.ngi.END_OF_DATA)
@@ -74,13 +74,16 @@
 def serve():
     mod, name, port, level = sys.argv[1:]
     __import__(mod)
-    logging.getLogger().addHandler(
-        logging.StreamHandler(open('server.log', 'w')))
+    logfile = open('server.log', 'w')
+    handler = logging.StreamHandler(logfile)
+    logging.getLogger().addHandler(handler)
     logger.setLevel(int(level))
     logger.addHandler(logging.StreamHandler())
     logger.info('serving')
     getattr(sys.modules[mod], name)(('localhost', int(port)), Server)
     run()
+    logging.getLogger().removeHandler(handler)
+    handler.close()
 
 def get_port():
     """Return a port that is not in use.



More information about the Checkins mailing list