python - 仅为日志级别 python 发送电子邮件
问题描述
有几个类似的问题被问到,但我找不到专门解决这种情况的问题。
在 python 中,我有一个类,它使用一个库,当它无法处理错误或数据时,它会抛出异常。
我的类包装了库,捕获异常并使用记录器记录它们。
我想通过电子邮件向自己提出任何异常,但我不想为每个日志条目都收到一封电子邮件。也就是说,我只想在使用 logger.exception("The Exception") 记录某些内容时收到电子邮件,而不是在使用 logger.info("Great things are getting") 记录时收到电子邮件
据我了解,SMTP 处理程序会将所有日志条目通过电子邮件发送给我。
解决方案
您可以创建自己的日志过滤器,如下所示:
import logging
class MessageFilter(logging.Filter):
def filter(self, record):
return 'goodbye' in record.msg
logger = logging.getLogger(__name__)
handler = logging.StreamHandler()
handler.addFilter(MessageFilter())
logger.addHandler(handler)
logger.error('hello world')
logger.error('goodbye moon')
这导致
goodbye moon
只需将邮件替换为filter
您要匹配的邮件并将其附加到您的 SMTPHandler。
推荐阅读
- java - 码头 Gzip 处理程序 (JbossAs7)
- php - php如何在sql查询中使用循环?
- watchkit - WKInterfaceTable 上方的不可滚动视图
- c# - C# 在 ListBox1 中搜索项目
- android - 在 MediaBrowserServiceCompat 中停止服务
- php - 当帖子在 meta_key 中具有特定值时,WordPress 会在点击时加载帖子
- excel-formula - Excel 公式 - 基于 2 列之间的比较从一列返回值
- javascript - 比较两个数组并创建一个具有差异的新数组,考虑重复
- php - PHP:preg_match 限制表单文本区域中的锚文本
- ansible - 使用主机:localhost 和 delegate_to 会导致 kerberos 无法访问!错误?