2015-03-02 5 views
2

Я пытаюсь использовать Pyramid и pyramid_exclog для отправки исключений в стороннюю систему всякий раз, когда в моем веб-приложении возникает исключение. К сожалению, я не могу заставить PasteDeploy development.ini правильно распознавать форматтер.Как включить сторонний форматор журнала в файл PasteDeploy ini?

Я пробовал несколько вариантов, в том числе:

[formatter_exc_formatter] 
class=JsonFormatter() 

...

[formatter_exc_formatter] 
class=jsonlogger.JsonFormatter() 

...

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

Я также попытался указать pythonjsonlogger как часть моего pyramid_includes, as so:

pyramid.includes = pyramid_exclog, pythonjsonlogger.jsonlogger 

, а также просто:

pyramid.includes = pyramid_exclog, pythonjsonlogger 

На данный момент я довольно тупик. Что мне не хватает? Как включить пользовательские форматирования в приложение PasteDeploy?

ответ

1

Вам необходимо опустить () с линии class.

Вместо:

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

Вам нужно сделать следующее:

[formatter_exc_formatter] 
class=pythonjsonlogger.jsonlogger.JsonFormatter 

pythonjsonlogger не является модулем Pyramid и не имеет includeme() функцию, которая вызывается по пирамиде для все pyramid.includes.

+0

спасибо, что поблагодарили! Я не уверен, почему я не пробовал это без(), но это работало великолепно. –