4

Python 的日志处理程序很棒。其中一些,例如SMTPHandler可能需要很长时间才能执行(联系 SMTP 服务器等)。它们是否在单独的线程上执行以不阻塞主程序?

4

2 回答 2

2

SMTPHandler使用smtplib,当使用这个库发送电子邮件时,您的进程会被阻止,直到它被正确发送,没有创建线程。

如果您不想在发送电子邮件时阻止您的进程,则必须实现自己的 SMTPHandler 并覆盖该emit(self, record)方法。

较少阻塞的处理程序是SysLogHandler,因为它通常是本地通信,并且在 UDP 中,因此系统不会等待来自目的地的任何确认。

于 2011-12-21T14:04:36.113 回答
0

不,据我所知,您应该生成一个单独的进程。

于 2011-12-21T14:02:12.087 回答