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

标签 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 管理的应用程序中?

最佳答案

您需要从 class 行中删除 ()

代替:

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

您需要执行以下操作:

[formatter_exc_formatter]
class=pythonjsonlogger.jsonlogger.JsonFormatter

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

关于python - 如何在 PasteDeploy ini 文件中包含第三方记录器格式化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28820961/

相关文章:

python - 为什么我的程序在执行看似无限循环时会停止?

python - 根据每个值对列的值进行分组

python - Pyramid 框架能否在CGI服务器上运行

python - 在 Grok - Zope - PasteScript 环境中启用 gzip 压缩

python - Bleach:如何为现有链接添加 nofollow 属性?

python - 无法使用 cx_Freeze 进行编译

python - Pyramid 中基于动态用户的授权

python - SQLAlchemy/Pyramid DBSession 刷新问题

python - 使用 paster web 服务器时,它是否通过创建新线程来服务请求?

python - 继承 Pyramid 中的配置文件设置