patch the LogObserver in a more modern, forward-compatible way and update the in-line comments about it

This commit is contained in:
czooko 2007-10-22 16:52:55 -07:00
parent 2a95a6fe5b
commit 3847228444

View File

@ -1,5 +1,5 @@
import datetime, new, os.path, re import datetime, os.path, re, types
from base64 import b32decode, b32encode from base64 import b32decode, b32encode
import twisted import twisted
@ -177,16 +177,14 @@ class Node(service.MultiService):
return self.stopService() return self.stopService()
def setup_logging(self): def setup_logging(self):
# we replace the log observer that twistd set up for us, with a form # we replace the formatTime() method of the log observer that twistd
# that uses better timestamps. First, shut down all existing # set up for us, with a method that uses better timestamps.
# file-based observers (leaving trial's error-watching observers in
# place).
for o in log.theLogPublisher.observers: for o in log.theLogPublisher.observers:
# o might be a FileLogObserver's .emit method # o might be a FileLogObserver's .emit method
if type(o) is type(self.setup_logging): # bound method if type(o) is type(self.setup_logging): # bound method
ob = o.im_self ob = o.im_self
if isinstance(ob, log.FileLogObserver): if isinstance(ob, log.FileLogObserver):
newmeth = new.instancemethod(formatTimeTahoeStyle, ob, ob.__class__) newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__)
ob.formatTime = newmeth ob.formatTime = newmeth
# TODO: twisted >2.5.0 offers maxRotatedFiles=50 # TODO: twisted >2.5.0 offers maxRotatedFiles=50