使用Python日志发送电子邮件

使用Python日志发送电子邮件,python,python-3.x,logging,Python,Python 3.x,Logging,我想每次调用Logger.fatal或Logger.warn时都发送一封电子邮件 也许一个解决方案是扩展它并覆盖这些方法。但是,当您导入日志记录时,获取Logger类的唯一方法是使用logging.getLogger() 如何解决此问题?覆盖记录器方法不是最佳解决方案 Python日志记录配置支持多个记录器,这些记录器支持多个处理程序(文件、标准输出、电子邮件)。处理程序又有不同的格式化程序(以字符串格式显示日志条目),但这不是这个问题的主题 事实上,Python支持通过电子邮件即时登录 因为您

我想每次调用
Logger.fatal
Logger.warn
时都发送一封电子邮件

也许一个解决方案是扩展它并覆盖这些方法。但是,当您导入日志记录时,获取
Logger
类的唯一方法是使用
logging.getLogger()


如何解决此问题?

覆盖记录器方法不是最佳解决方案

Python日志记录配置支持多个记录器,这些记录器支持多个处理程序(文件、标准输出、电子邮件)。处理程序又有不同的格式化程序(以字符串格式显示日志条目),但这不是这个问题的主题

事实上,Python支持通过电子邮件即时登录

因为您没有包括有关应用程序和记录器设置的详细信息,所以无法针对您的问题给出答案。但大体上是这样的

  • 添加一个
    SMTPHandler
    handler根记录器(调用
    logging.getLogger()
    ,带参数的应为您提供根lgoger)

  • 使处理程序级别
    WARN
    忽略
    INFO
    DEBUG
    级别


.

我不确定我是否正确理解您需要什么,但也许您可以通过名称获取现有的记录器,然后向其添加一个SMTPHandler。最好阅读位于的Python logging HowTo。If解释关于配置和修改记录器的所有选项。在gist mate上做得很好:)在python 3.0上工作得很好,即使我们进行了修改。