Python的日志记录模块中的SMTPHandler一次发送一封电子邮件.我怎么能阻止这个?

jam*_*ieb 18 python logging

我正在尝试使用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. :-(")
Run Code Online (Sandbox Code Playgroud)

Vin*_*jip 8

看到我给出的类似问题的答案.这里使用一个示例处理程序; 你可以根据自己的要求进行调整.