Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging.handlers
- import smtplib
- class BufferingSMTPHandler(logging.handlers.BufferingHandler):
- def __init__(self, mailhost, fromaddr, toaddrs, subject, capacity):
- logging.handlers.BufferingHandler.__init__(self, capacity)
- self.mailhost = mailhost
- self.mailport = None
- self.fromaddr = fromaddr
- if isinstance(toaddrs, (str, unicode)):
- toaddrs = [toaddrs]
- self.toaddrs = toaddrs
- self.subject = subject
- self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s"))
- def flush(self):
- if len(self.buffer) > 0:
- try:
- port = self.mailport
- if not port:
- port = smtplib.SMTP_PORT
- smtp = smtplib.SMTP(self.mailhost, port)
- msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (self.fromaddr, ','.join(to_addrs), self.subject)
- for record in self.buffer:
- s = self.format(record)
- msg = msg + s + "\r\n"
- smtp.sendmail(self.fromaddr, self.toaddrs, msg)
- smtp.quit()
- except:
- self.handleError(None) # no particular record
- self.buffer = []
Add Comment
Please, Sign In to add comment