在Python日志记录中将日志定向到特定的处理程序,而不是其他处理程序

时间:2019-05-22 22:06:19

标签: python logging flask

我有一个Flask应用程序,我想为其编写一个BEGIN ALTER TABLE TBL DISABLE TRIGGER A; -- do some work (success) -- more work here... but an error is raised ALTER TABLE TBL ENABLE TRIGGER A; -- (not executed) -- some other statements here (not executed) END; 方法,该方法采用global_error_handler之类的参数,并且仅当此参数为email_admin时才通过电子邮件发送给管理员。

如果我想使用Python内置的日志记录功能(例如,而不是从True获取异常信息并自己格式化电子邮件,那么我该如何选择呢?我真正坚持的是:在引发异常时,我似乎无法说出来,请将它定向到这个特定的日志记录处理程序,而不是另一个。我需要编写多个记录器,每个记录器都有一个特定的处理程序,并以这种方式具有不同的错误日志目标?

1 个答案:

答案 0 :(得分:0)

您可以按照here所述注册自己的错误处理程序,其中提到了

  

可以为任何异常类注册处理程序,而不仅仅是HTTPException子类或HTTP状态代码。可以为特定类或父类的所有子类注册处理程序。

因此,您可以根据需要定义和注册自己的异常类。

关于通过内置日志记录处理错误,我建议您熟悉Flask docs here,其中概述了如何自定义处理程序(例如,使用SMTPHandler)或完全删除默认处理程序