如何在PasteDeploy ini文件中包含第三方记录器格式化程序?

时间:2015-03-02 22:53:40

标签: python pyramid paster

我正在尝试利用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管理的应用程序中?

1 个答案:

答案 0 :(得分:1)

您需要从()行中删除class

而不是:

[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter()

您需要执行以下操作:

[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter

pythonjsonlogger不是金字塔模块,并且没有includeme()函数,金字塔为所有pyramid.includes调用该函数。