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

2012-11-12 Thread tinnews
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?

2012-11-12 Thread Peter Otten
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?

2012-11-12 Thread tinnews
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?

2012-11-11 Thread Steve Howell
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