- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经为我的新 python 脚本设置了日志记录模块。我有两个处理程序,一个将内容发送到文件,另一个用于电子邮件警报。 SMTPHandler 设置为发送 ERROR 级别或更高级别的任何内容。
一切正常,除非 SMTP 连接失败。如果 SMTP 服务器没有响应或身份验证失败(它需要 SMTP 身份验证),那么整个脚本就死掉了。
我是 python 的新手,所以我想弄清楚如何捕获 SMTPHandler 引发的异常,以便通过电子邮件发送日志消息的任何问题都不会影响我的整个脚本。由于我还将错误写入日志文件,如果 SMTP 警报失败,我只想继续前进,而不是停止任何事情。
如果我需要一个“try:”语句,它会绕过 logging.handlers.SMTPHandler 设置,还是绕过对 my_logger.error() 的单独调用?
最佳答案
记录期间发生的异常不应停止您的脚本,尽管它们可能会导致将回溯打印到 sys.stderr
。为了防止这种打印输出,请执行以下操作:
logging.raiseExceptions = 0
这不是默认设置(因为在开发中您通常想了解失败情况)但在生产中,不应设置 raiseExceptions
。
您应该会发现 SMTPHandler
将在下次记录错误(或更高级别)时尝试重新连接。
logging
确实通过SystemExit
和KeyboardInterrupt
异常,但是应该处理所有其他异常不会导致使用日志记录的应用程序终止。如果您发现情况并非如此,请发布异常的具体细节,这些异常正在通过并导致您的脚本终止,以及您的 Python/操作系统版本。请记住,如果存在导致处理程序阻塞的网络超时(例如,如果 DNS 查找需要很长时间,或者如果 SMTP 连接需要很长时间),脚本可能会挂起。
关于Python 日志记录 SMTPHandler - 处理离线 SMTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1304593/
我已经在 Python 3 中完成并尝试了这段代码,以便在发生异常时向我发送电子邮件,但 STMPHandler 不起作用。它与 SMTPHandler 的相同参数和值以及从此 answer 复制粘贴
我安装了本地SMTP server并使用 logging.handlers.SMTPHandler使用此代码记录异常: import logging import logging.handlers i
我想使用Python的记录器smtphandler来发送错误和诸如此类的电子邮件。我也不希望我的收件箱因同一错误而被数千封电子邮件淹没。 有没有办法限制发送的电子邮件数量?理想情况下,如果它不断捕获相
我已经为我的新 python 脚本设置了日志记录模块。我有两个处理程序,一个将内容发送到文件,另一个用于电子邮件警报。 SMTPHandler 设置为发送 ERROR 级别或更高级别的任何内容。 一切
我正在使用标准的 SMTPHandler 记录器来捕获我的 Python 异常。 有没有办法将异常名称放入邮件主题中?这会比使用静态主题好得多,因为 Gmail(不仅是 Gmail)可以根据主题对对话
这个问题在这里已经有了答案: Collate output in Python logging MemoryHandler with SMTPHandler (6 个回答) 关闭7年前。 我正在尝试使
我在 Verizon 和 Gmail 上试过了。两台服务器均拒绝身份验证。 Gmail 给我发邮件说它拒绝登录尝试,因为连接没有使用“现代安全”。 我想知道如何通过此日志记录处理程序使用现代安全性。
我正在开发一个 flask 应用程序,我想在其中将错误级别日志记录发送到一个电子邮件地址。我尝试设置典型的错误处理程序: mail_handler = SMTPHandler(mailhost=(ap
我设置了日志记录模块 MemoryHandler 来排队 SMTPHandler 目标的调试和错误消息。我想要的是当包含所有调试语句的过程错误时发送一封电子邮件(每行一个)。相反,我得到的是每条调试消
我是一名优秀的程序员,十分优秀!