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

How do I include a third-party logger formatter in a PasteDeploy ini file?

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

您需要从 class 行删除 ()

而不是:

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

您需要执行以下操作:

[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter

pythonjsonlogger 不是 Pyramid 模块并且没有 Pyramid 为所有 pyramid.includes.

调用的 includeme() 函数