【问题标题】:Send email with Python logging使用 Python 日志记录发送电子邮件
【发布时间】:2016-01-12 09:26:43
【问题描述】:

我想在每次调用 Logger.fatalLogger.warn 时发送一封电子邮件。

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

我该如何解决这个问题?

【问题讨论】:

  • 不确定我是否正确理解您的需求,但也许您可以通过其名称获取现有记录器,然后向其添加 SMTPHandler。
  • 最好在docs.python.org/2/howto/logging.html 阅读 Python 日志记录方法。如果解释配置和修改记录器的所有选项。

标签: python python-3.x logging


【解决方案1】:

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

Python 日志记录配置支持多个记录器,然后再支持多个处理程序(文件、标准输出、电子邮件)。处理程序又具有不同的 formatters(如何显示日志条目的字符串格式),但对于这个问题来说它是题外话。

事实上,Python 通过SMTPHandler 支持开箱即用的电子邮件登录。

由于您没有提供有关您的应用程序和记录器设置的详细信息,因此无法针对您的问题给出具体答案。但大致轮廓是这样的

  • 添加一个 SMTPHandler 处理程序根记录器(使用参数调用 logging.getLogger() 应该为您提供根 lgoger)

  • 将处理程序级别设为WARN,使其忽略INFODEBUG 级别

See also proper mechanism to initialize loggers in your Python code.

【讨论】:

  • 你的主旨伙伴干得好 :) 即使在我们这边进行了修改,也可以在 python 3.0 上完美运行。
猜你喜欢
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多