Pylons - перехват ошибок перед перенаправлением в документ / ошибка регистрации - PullRequest
0 голосов
/ 21 августа 2010

Я хочу зарегистрировать ошибки 404 и 500 в приложении пилонов, прежде чем они перенаправят на мое пользовательское сообщение об ошибке (/ error / document).

Моя проблема в том, что, поскольку Pylons выполняет перенаправление, я не могу определить страницу, на которой произошла ошибка внутри контроллера ошибок. Поэтому, не создавая синтаксический анализатор для paster.log, я не знаю хорошего способа выборочного ведения журнала только нескольких релевантных фрагментов данных, которые я хочу: url, ссылающаяся страница и трассировка стека.

В идеале я хотел бы получить доступ к странице, на которой произошла ошибка, ссылающейся странице, а также к трассировке полного стека и добавить ее в couchdb для некоторых быстрых и простых отчетов.

Ответы [ 2 ]

1 голос
/ 21 августа 2010

Для пользовательской обработки ошибок, я думаю, вы должны взглянуть на ErrorHandler и StatusCodeRedirect (из pylons.middleware) и, возможно, создать собственный класс на их основе?

0 голосов
/ 29 марта 2012

Вы можете получить исходный объект запроса и ответа Pylons из текущего запроса.Оттуда вы можете получить нужные данные:

request = self._py_object.request.environ['pylons.original_request']
response = self._py_object.request.environ['pylons.original_response']
url = request.environ.get("PATH_INFO")

Я не уверен, как получить ссылку на страницу или какую трассировку стека вы хотите, но я готов поспорить, что она где-то там.

...