仅针对日志级别python发送电子邮件

时间:2019-01-27 02:18:21

标签: python python-3.x exception logging exception-handling

有几个类似的问题,但我找不到能专门针对这种情况的

在python中,我有一个使用库的类,该库在无法处理错误或数据时会引发异常。

我的课程包装了库,捕获了异常并使用记录器记录了它们。

我想通过电子邮件向自己提出任何例外情况,但是我不想为每个日志条目都收到一封电子邮件。也就是说,我只想在使用logger.exception(“ The Exception”)进行记录时收到电子邮件,而不是如果使用logger.info(“正在发生的大事”)进行记录

据我了解,SMTP处理程序会将所有日志条目通过电子邮件发送给我。

1 个答案:

答案 0 :(得分:0)

您可以创建自己的日志记录过滤器,如下所示:

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。