A library that mimics the standard logging.handlers.SMTPHandler
class but sends email messages only when a preconfigured buffer is full or on exit.
Install the program using pip:
pip install buffered_smtp_handler
This library offers two classes: BufferedSMTPHandler
and BufferedSMTPHandlerSSL
.
They accept the same arguments of the standard SMTPHandler class, and also the capacity
argument to set the capacity of the buffer (default: 100).
The SSL version is based on the smtplib.SMTP_SSL
and avoids to perform StartSSL.
Via code:
>>> import logging
>>> from pierky.buffered_smtp_handler import BufferedSMTPHandler
>>> logger = logging.getLogger("my_app")
>>> logger.setLevel(logging.INFO)
>>> h = BufferedSMTPHandler("smtp.example.com", "from@example.com", ["to@example.com"], "MyApp log", capacity=10)
>>> logger.addHandler(h)
>>> logger.warning("Test")
Via a logging configuration file:
[loggers] keys=root [formatters] keys=simple [handlers] keys=stderr,smtp [logger_root] level=INFO handlers=stderr,smtp [formatter_simple] format=ARouteServer %(asctime)s %(levelname)s %(message)s [handler_stderr] class=StreamHandler formatter=simple args=(sys.stderr,) [handler_smtp] class=pierky.buffered_smtp_handler.BufferedSMTPHandler level=WARN formatter=simple args=(('smtp.example.com', 25), 'from@example.com', ['to@example.com'], 'MyApp log')
Pier Carlo Chiodi - https://pierky.com/
Blog: https://blog.pierky.com/ Twitter: @pierky