每当我的web应用程序中发生异常时,我都会尝试利用Pyramid和Pyramid_exclog向第三方系统发送异常。不幸的是,我似乎无法使PasteDeploydevelopment.ini正确识别格式化程序。
我尝试了几种变体,包括:
[formatter_exc_formatter]
class=JsonFormatter()
[formatter_exc_formatter]
class=jsonlogger.JsonFormatter()
[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter()
我还尝试将pythonjsonlogger指定为我的pyramid_includes的一部分,如下所示:
pyramid.includes = pyramid_exclog, pythonjsonlogger.jsonlogger
以及:
pyramid.includes = pyramid_exclog, pythonjsonlogger
在这一点上,我很困惑。我错过了什么?如何将自定义格式化程序包含到PasteDeploy管理的应用程序中?
您需要从class
行中删除()
。
代替:
[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter()
您需要执行以下操作:
[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter
pythonjsonlogger
不是Pyramid模块,也没有Pyramid为所有pyramid.includes
调用的includeme()
函数。