[prev in list] [next in list] [prev in thread] [next in thread]
List: zodb-checkins
Subject: [Zodb-checkins] CVS: Zope/lib/python/ZConfig/components/logger -
From: "Fred L. Drake\, Jr." <fred () zope ! com>
Date: 2004-04-22 20:20:42
Message-ID: 200404222020.i3MKKgu5028430 () cvs ! zope ! org
[Download RAW message or body]
Update of /cvs-repository/Zope/lib/python/ZConfig/components/logger
In directory cvs.zope.org:/tmp/cvs-serv28349/lib/python/ZConfig/components/logger
Modified Files:
loghandler.py
Log Message:
cleanly separate the debug logging handler from the startup logging handler;
these must be controllable separately
=== Zope/lib/python/ZConfig/components/logger/loghandler.py 1.2 => 1.3 ===
--- Zope/lib/python/ZConfig/components/logger/loghandler.py:1.2 Tue Apr 13 13:05:52 2004
+++ Zope/lib/python/ZConfig/components/logger/loghandler.py Thu Apr 22 16:20:11 2004
@@ -17,7 +17,7 @@
import sys
from logging import Handler, StreamHandler
-from logging.handlers import SysLogHandler
+from logging.handlers import SysLogHandler, BufferingHandler
from logging.handlers import HTTPHandler, SMTPHandler
from logging.handlers import NTEventLogHandler as Win32EventLogHandler
@@ -53,32 +53,19 @@
pass
-class StartupHandler(Handler):
- """
- A handler which outputs messages to a stream but also buffers them until
- they can be flushed to a target handler. Useful at startup before we can
- know that we can safely write to a config-specified handler.
+class StartupHandler(BufferingHandler):
+ """Handler which stores messages in a buffer until later.
+
+ This is useful at startup before we can know that we can safely
+ write to a configuration-specified handler.
"""
- def __init__(self, stream=None):
- Handler.__init__(self)
- if not stream:
- stream = sys.stderr
- self.stream = stream
- self.buffer = []
- def emit(self, record):
- try:
- self.buffer.append(record)
- msg = self.format(record)
- self.stream.write("%s\n" % msg)
- self.flush()
- except:
- self.handleError(record)
+ def __init__(self):
+ BufferingHandler.__init__(self, sys.maxint)
- def flush(self):
- self.stream.flush()
+ def shouldFlush(self, record):
+ return False
def flushBufferTo(self, target):
- for record in self.buffer:
- target.handle(record)
- self.buffer = []
+ while self.buffer:
+ target.handle(self.buffer.pop(0))
_______________________________________________
Zodb-checkins mailing list
Zodb-checkins@zope.org
http://mail.zope.org/mailman/listinfo/zodb-checkins
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic