Collate output in Python logging MemoryHandler with SMTPHandler -


i have logging module memoryhandler set queue debug , error messages smtphandler target. want email sent when process errors contains debug statements point (one per line). instead separate email every debug message.

this seems should trivial, , part of logging package, can't find it, no examples, nothing on google.

log = logging.getlogger() log.setlevel(logging.debug) debug_format = logging.formatter("%(levelname)s @ %(asctime)s in %(filename)s (line %(lineno)d):: %(message)s")  # write errors email error_mail_subject = "error: script error in %s on %s" % (sys.argv[0], os.uname()[1]) error_mail_handler = logging.handlers.smtphandler(smtp_host, 'errors@'+os.uname()[1], [log_email], error_mail_subject) error_mail_handler.setlevel(logging.error) #error_mail_handler.setlevel(logging.debug) error_mail_handler.setformatter(debug_format)  # buffer debug messages can sent error emails memory_handler = logging.handlers.memoryhandler(1024*10, logging.error, error_mail_handler) memory_handler.setlevel(logging.debug)  # attach handlers log.addhandler(memory_handler) log.addhandler(error_mail_handler) 

related this:

do need add error_mail_handler logger explicitly if target of memory_handler anyway? should error_mail_handler set debug or error target? need target when being fed memory_handler?

would love see working code has solved problem.

you might want use or adapt bufferingsmtphandler in this test script.

in general, don't need add handler logger if it's target of memoryhandler handler has been added logger. if set level of handler, affect handler processes - won't process less severe level setting.


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -