有几个类似的问题,但我找不到能专门针对这种情况的
在python中,我有一个使用库的类,该库在无法处理错误或数据时会引发异常。
我的课程包装了库,捕获了异常并使用记录器记录了它们。
我想通过电子邮件向自己提出任何例外情况,但是我不想为每个日志条目都收到一封电子邮件。也就是说,我只想在使用logger.exception(“ The Exception”)进行记录时收到电子邮件,而不是如果使用logger.info(“正在发生的大事”)进行记录
据我了解,SMTP处理程序会将所有日志条目通过电子邮件发送给我。
答案 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。