[Zope-Checkins] CVS: Zope/lib/python/Signals - Signals.py:1.3

Fred L. Drake, Jr. fred at zope.com
Tue Apr 13 15:02:55 EDT 2004


Update of /cvs-repository/Zope/lib/python/Signals
In directory cvs.zope.org:/tmp/cvs-serv32680/Signals

Modified Files:
	Signals.py 
Log Message:
- fix up the last piece that dealt with the old zLOG cruft; this is more
  loosely coupled and re-uses the shared logging configuration more
- replace uses of zLOG with logging


=== Zope/lib/python/Signals/Signals.py 1.2 => 1.3 ===
--- Zope/lib/python/Signals/Signals.py:1.2	Wed Nov 12 15:42:22 2003
+++ Zope/lib/python/Signals/Signals.py	Tue Apr 13 15:02:25 2004
@@ -17,61 +17,69 @@
 """
 __version__='$Revision$'[11:-2]
 
-from SignalHandler import SignalHandler
-import zLOG
+import logging
 import sys
+
 import Lifetime
 
+from SignalHandler import SignalHandler
+
+logger = logging.getLogger("Z2")
+
+
 def shutdownFastHandler():
     """Shutdown cleanly on SIGTERM. This is registered first,
        so it should be called after all other handlers."""
-    zLOG.LOG('Z2', zLOG.INFO , "Shutting down fast")
+    logger.info("Shutting down fast")
     Lifetime.shutdown(0,fast=1)
 
 
 def shutdownHandler():
     """Shutdown cleanly on SIGINT. This is registered first,
        so it should be called after all other handlers."""
-    zLOG.LOG('Z2', zLOG.INFO , "Shutting down")
+    logger.info("Shutting down")
     sys.exit(0)
 
 def restartHandler():
     """Restart cleanly on SIGHUP. This is registered first, so it
        should be called after all other SIGHUP handlers."""
-    zLOG.LOG('Z2', zLOG.INFO , "Restarting")
+    logger.info("Restarting")
     Lifetime.shutdown(1)
 
-def logfileReopenHandler():
-    """Reopen log files on SIGUSR2. This is registered first, so it
-       should be called after all other SIGUSR2 handlers."""
-    from zLOG.EventLogger import event_logger
-    from ZServer.AccessLogger import access_logger
-    from ZServer.DebugLogger import debug_logger
-    for logger in (event_logger, access_logger, debug_logger):
-        logger.reopen()
-    zLOG.LOG('Z2', zLOG.INFO, "Log files reopened successfully")
+class LogfileReopenHandler:
+    """Reopen log files on SIGUSR2.
+
+    This is registered first, so it should be called after all other
+    SIGUSR2 handlers.
+    """
+    def __init__(self, loggers):
+        self.loggers = [log for log in loggers if log is not None]
+
+    def __call__(self):
+        for log in self.loggers:
+            log.reopen()
+        logger.info("Log files reopened successfully")
 
 def packHandler():
     """ Packs the main database.  Not safe to call under a signal
     handler, because it blocks the main thread """
-    zLOG.LOG('Z2', zLOG.INFO, 'Packing main ZODB database')
+    logger.info('Packing main ZODB database')
     import Globals
     try:
         db = Globals.opened[0]
         db.pack()
-        zLOG.LOG('Z2', zLOG.INFO,
-                'Database packing launched or completed successfully')
+        logger.info('Database packing launched or completed successfully')
     except:
-        zLOG.LOG('Z2', zLOG.INFO,
-                 'Call to pack failed!', error=sys.exc_info())
+        logger.exception('Call to pack failed!')
         
 
-def registerZopeSignals():
+def registerZopeSignals(loggers):
     import signal
     SignalHandler.registerHandler(signal.SIGTERM, shutdownFastHandler)
     SignalHandler.registerHandler(signal.SIGINT, shutdownHandler)
     SignalHandler.registerHandler(signal.SIGHUP, restartHandler)
-    SignalHandler.registerHandler(signal.SIGUSR2, logfileReopenHandler)
+    SignalHandler.registerHandler(signal.SIGUSR2,
+                                  LogfileReopenHandler(loggers))
     # SIGUSR1 is nominally reserved for pack, but we dont have an
     # implementation that is stable yet because if the signal handler
     # fires it will be caught in the main thread and all network operations




More information about the Zope-Checkins mailing list