我在文档中看到了一种非常简单的方式来发送有关 Flask 错误的电子邮件。我的问题是这是否会显着影响应用程序的性能?例如,运行我的应用程序的进程是否真的在发送电子邮件?
我目前的预感是,因为 SMTP 是在另一个进程上运行的服务器,它会正确地将电子邮件排入队列并尽可能发送,这意味着它不会影响应用程序的性能。
嗯,SMTPHandler
继承自logging.Handler
. 看着logging.Handler
,虽然它做了几件事来处理在多个线程中被调用,但它没有做任何事情来产生多个线程。日志记录调用发生在调用它们的线程中。因此,如果我正确读取代码,日志调用将阻塞它正在运行的线程,直到它完成(这意味着如果您的 SMTP 服务器需要 30 秒来响应您的错误线程将需要time_to_error + 30 seconds + time_to_send + time_to_respond_to_request_with_500
.)
也就是说,我可能误读了代码。但是,您最好使用SysLogHandler
并让syslog
处理带外消息发送给您。