Re: logging, can one get it to email messages over a certain level?
Steve Howell showel...@yahoo.com wrote: On Nov 11, 9:48 am, tinn...@isbd.co.uk wrote: I'm sure this must be possible but at the moment I can't see how to do it. I want to send an E-Mail when the logging module logs a message above a certain level (probably for ERROR and CRITICAL messages only). I.e. I want some sort of hook that will be called when these messages are logged (I can do the sendmail bit OK, I've got code that does that). -- Chris Green Scroll down to the Handlers section here: http://docs.python.org/2/howto/logging.html#logging-basic-tutorial I'm not sure this explains perfectly what you're gonna need to do, but I hope it gets you in the ballpark. Thank you, but yes I agree it's not terribly informative is it. However I think I understand what I need to do. I currently have a function to set up my logging:- def initLog(name): log = logging.getLogger(name) log.setLevel(logging.DEBUG) f = logging.handlers.RotatingFileHandler(/home/chris/tmp/mail.log, 'a', 100, 4) f.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') f.setFormatter(formatter) log.addHandler(f) return log As I understand it I just add another line like the 'f =' line but using the SMTPHandler and then set an appropriate level for that handler (and formatting). -- Chris Green -- http://mail.python.org/mailman/listinfo/python-list
Re: logging, can one get it to email messages over a certain level?
tinn...@isbd.co.uk wrote: Steve Howell showel...@yahoo.com wrote: On Nov 11, 9:48 am, tinn...@isbd.co.uk wrote: I'm sure this must be possible but at the moment I can't see how to do it. I want to send an E-Mail when the logging module logs a message above a certain level (probably for ERROR and CRITICAL messages only). I.e. I want some sort of hook that will be called when these messages are logged (I can do the sendmail bit OK, I've got code that does that). -- Chris Green Scroll down to the Handlers section here: http://docs.python.org/2/howto/logging.html#logging-basic-tutorial I'm not sure this explains perfectly what you're gonna need to do, but I hope it gets you in the ballpark. Thank you, but yes I agree it's not terribly informative is it. Here's a minimal example: import logging from logging.handlers import SMTPHandler if __name__ == __main__: logging.basicConfig(level=logging.INFO) mail_handler = SMTPHandler( smtp.example.com, naviga...@example.com, captain.n...@example.com, fyi) mail_handler.setLevel(logging.CRITICAL) root = logging.getLogger() root.addHandler(mail_handler) # will print amessage root.warn(this is fishy) # will print a message and send an email root.critical(giant squid sighted) -- http://mail.python.org/mailman/listinfo/python-list
Re: logging, can one get it to email messages over a certain level?
Peter Otten __pete...@web.de wrote: tinn...@isbd.co.uk wrote: Steve Howell showel...@yahoo.com wrote: On Nov 11, 9:48 am, tinn...@isbd.co.uk wrote: I'm sure this must be possible but at the moment I can't see how to do it. I want to send an E-Mail when the logging module logs a message above a certain level (probably for ERROR and CRITICAL messages only). I.e. I want some sort of hook that will be called when these messages are logged (I can do the sendmail bit OK, I've got code that does that). -- Chris Green Scroll down to the Handlers section here: http://docs.python.org/2/howto/logging.html#logging-basic-tutorial I'm not sure this explains perfectly what you're gonna need to do, but I hope it gets you in the ballpark. Thank you, but yes I agree it's not terribly informative is it. Here's a minimal example: import logging from logging.handlers import SMTPHandler if __name__ == __main__: logging.basicConfig(level=logging.INFO) mail_handler = SMTPHandler( smtp.example.com, naviga...@example.com, captain.n...@example.com, fyi) mail_handler.setLevel(logging.CRITICAL) root = logging.getLogger() root.addHandler(mail_handler) # will print amessage root.warn(this is fishy) # will print a message and send an email root.critical(giant squid sighted) Thank you. -- Chris Green -- http://mail.python.org/mailman/listinfo/python-list
Re: logging, can one get it to email messages over a certain level?
On Nov 11, 9:48 am, tinn...@isbd.co.uk wrote: I'm sure this must be possible but at the moment I can't see how to do it. I want to send an E-Mail when the logging module logs a message above a certain level (probably for ERROR and CRITICAL messages only). I.e. I want some sort of hook that will be called when these messages are logged (I can do the sendmail bit OK, I've got code that does that). -- Chris Green Scroll down to the Handlers section here: http://docs.python.org/2/howto/logging.html#logging-basic-tutorial I'm not sure this explains perfectly what you're gonna need to do, but I hope it gets you in the ballpark. -- http://mail.python.org/mailman/listinfo/python-list