我想在每次调用Logger.fatal
或Logger.warn
时发送电子邮件。
也许解决方案可能是扩展它并覆盖方法。但是当您导入日志记录时,获取Logger
类的唯一方法是使用logging.getLogger()
。
我该如何解决这个问题?
答案 0 :(得分:2)
它不是覆盖记录器方法的最佳解决方案。
Python日志记录配置支持多个记录器,然后支持多个处理程序(文件,标准输出,电子邮件)。处理程序反过来具有不同的格式化程序(字符串格式如何显示日志条目),但它是这个问题的offtopic。
事实上,Python支持通过SMTPHandler开箱即用的电子邮件日志记录。
由于您未包含有关应用程序和记录器设置的详细信息,因此无法针对您的问题给出答案。但一般概述是这个
添加SMTPHandler
处理程序根记录器(带参数的logging.getLogger()
调用应该为您提供根lgoger)
将处理程序级别WARN
设为忽略INFO
和DEBUG
级别
See also proper mechanism to initialize loggers in your Python code