logging, can one get it to email messages over a certain level?

tinnews at isbd.co.uk tinnews at isbd.co.uk
Mon Nov 12 12:36:47 CET 2012


Peter Otten <__peter__ at web.de> wrote:
> tinnews at isbd.co.uk wrote:
> 
> > Steve Howell <showell30 at yahoo.com> wrote:
> >> On Nov 11, 9:48 am, tinn... at 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",
>         "navigator at example.com",
>         "captain.nemo at 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


More information about the Python-list mailing list