[Extras-cauldron-commits] r38 - trunk/buildme/buildlib
ed_ at garage.maemo.org
ed_ at garage.maemo.org
Sun May 18 22:07:01 EEST 2008
Author: ed_
Date: 2008-05-18 22:07:00 +0300 (Sun, 18 May 2008)
New Revision: 38
Modified:
trunk/buildme/buildlib/logger.py
Log:
debugged logging subsystem
Modified: trunk/buildme/buildlib/logger.py
===================================================================
--- trunk/buildme/buildlib/logger.py 2008-05-18 14:23:44 UTC (rev 37)
+++ trunk/buildme/buildlib/logger.py 2008-05-18 19:07:00 UTC (rev 38)
@@ -47,12 +47,19 @@
handler.setFormatter(self.formatter)
logging.Logger.addHandler(self, handler)
- def removeHandler(self, handler):
- """ Flush before removing """
+ def removeHandler(self, handler, clean=False):
+ """ Flush before removing. Clean if needed """
if handler:
handler.flush()
logging.Logger.removeHandler(self, handler)
+ def clean(self):
+ """ Clean all cleanable handlers """
+
+ for handler in self.handlers:
+ if hasattr(handler, 'clean') and callable(handler.clean):
+ handler.clean()
+
def summary(self, msg, *args, **kwargs):
""" Log 'msg % args' with severity 'SUMMARY'. """
@@ -67,16 +74,35 @@
self.buffer = []
def emit(self, record):
- """ Append a record to the buffer """
+ """ Append a record to the buffer.
+ Skip duplicating records """
+
+ for item in self.buffer:
+ if record.getMessage() == item.getMessage():
+ return
+
self.buffer.append(record)
def getSubject(self, record):
""" Redefined method to get subject from subject object """
return str(self.subject)
+ def format(self, record):
+ """ Format records from buffer. Called in SMTPHandler.emit """
+ result = ""
+ for record in self.buffer:
+ result = "%s\n%s" % (result, SMTPHandler.format(self, record))
+ return result
+
+ def clean(self):
+ """ Clean buffer """
+ self.buffer = []
+
def flush(self):
- """ Send buffer by email """
- SMTPHandler.emit(self, buffer)
+ """ Send buffered records by email """
+ if self.buffer:
+ SMTPHandler.emit(self, self)
+ self.buffer = []
def create_uploader_handler(logger, uploader, builder_email, subject):
""" Create BuilderSMTPHandler for uploader """
More information about the Extras-cauldron-commits
mailing list