[Extras-cauldron-commits] r31 - trunk/buildme/buildlib

ed_ at garage.maemo.org ed_ at garage.maemo.org
Sat May 17 22:34:52 EEST 2008


Author: ed_
Date: 2008-05-17 22:34:51 +0300 (Sat, 17 May 2008)
New Revision: 31

Modified:
   trunk/buildme/buildlib/logger.py
Log:
added BuilderSMTPHandler

Modified: trunk/buildme/buildlib/logger.py
===================================================================
--- trunk/buildme/buildlib/logger.py	2008-05-17 16:50:24 UTC (rev 30)
+++ trunk/buildme/buildlib/logger.py	2008-05-17 19:34:51 UTC (rev 31)
@@ -27,6 +27,7 @@
 __revision__ = "r"+"$Revision$".split(' ')[1]
 
 import logging
+from logging.handlers import SMTPHandler
 
 class CustomLogger(logging.Logger):
     """ Custom Logger. Redefines formatter """
@@ -52,6 +53,21 @@
         if self.manager.disable < self.SUMMARY and self.SUMMARY >= self.getEffectiveLevel():
             apply(self._log, (self.SUMMARY, msg, args), kwargs)
 
+class BuilderSMTPHandler(SMTPHandler):
+    """ Custom SMTP handler. Sends all messages in one email """
+
+    def __init__(fromaddr, toaddrs, subject, mailhost='localhost'):
+        SMTPHandler.__init__(self, mailhost, fromaddr, toaddrs, subject)
+        self.buffer = []
+
+    def emit(self, record):
+        """ Append a record to the buffer """
+        self.buffer.append(record)
+
+    def flush(self):
+        """ Send buffer by email """
+        SMTPHandler.emit(self, buffer)
+
 if __name__ == '__main__':
     raise NotImplemented
 



More information about the Extras-cauldron-commits mailing list