我正在尝试利用Pyramid和pyramid_exclog在我的网络应用中发生异常时向第三方系统发送异常。不幸的是,我似乎无法使我的PasteDeploy development.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管理的应用程序中?
答案 0 :(得分:1)
您需要从()
行中删除class
。
而不是:
[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter()
您需要执行以下操作:
[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter
pythonjsonlogger
不是金字塔模块,并且没有includeme()
函数,金字塔为所有pyramid.includes
调用该函数。