我正在尝试利用 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/