2

每当我的网络应用程序中发生异常时,我正在尝试利用 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 管理的应用程序中?

4

1 回答 1

1

您需要()从您的class线路中删除。

代替:

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

您需要执行以下操作:

[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter

pythonjsonlogger不是 Pyramid 模块,也没有includeme()Pyramid 为 all 调用的函数pyramid.includes

于 2015-03-07T22:09:22.417 回答