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 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?
tinn...@isbd.co.uk wrote: > Steve Howell 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?
Steve Howell 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?
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