[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