Python日志模块中的SMTPHandler一次发送一封邮件。如何阻止此行为?
我正在尝试使用Python的logging
模块来发送包含日志的电子邮件。我的问题是,每次我写入一条日志时,都会发送一封电子邮件。我该如何将日志消息排队,并在脚本结束时只发送一封电子邮件呢?
我觉得这可能是通过emit()
方法来实现的,但我不知道该怎么用。
import logging, logging.handlers
log = logging.getLogger("mylogger")
log.setLevel(logging.DEBUG)
h2 = logging.handlers.SMTPHandler(mailhost='mailserver',
fromaddr='noreply@example.com',
toaddrs=['me@example.com'],
subject='The log',
credentials=('user','pwd'),
secure=None)
h2.setLevel(logging.INFO)
h2.setFormatter(f)
log.addHandler(h2)
log.info("Did something")
log.info("Did something else")
log.info("This would send a third email. :-(")