Если с хуками не сложится, всегда можно решить проблему "в лоб":

1. Старый хендлер переименовываем из blabla_handler например в
blabla_handler_raw
2. В blabla_handler_raw делаем минимальные изменения - нужно вернуть или
положить в стэш кодификатор, строку или типа того, по которому мы узнаем,
что было возвращено
3. В новом blabla_handler пишем обертку с замером времени и записью в лог

(А может лучше рассмотреть возможность изменить проект так, чтобы он был
такой весь из себя RESTfull и по url + коду возврата становилось ясно, что
спрашивалось и что получили?)

19 июля 2012 г., 15:09 пользователь iSage <[email protected]> написал:

> смотреть в сторону хуков before_dispatch/after_dispatch и res->content
>
> On Thu, 19 Jul 2012 14:59:01 +0400, Ivan Petrov
> <[email protected]> wrote:
> > была задачка залоггировать часть запросов к сайту на Mojo.
> > именно часть, ибо роутов там огромное количество а залогировать надо
> > несколько десятков.
> >
> > взяли и сделали нечто вроде такого
> >
> > for my $r ($route->bridge->to('logger#do_log')) {
> >
> >     $r->get('/r1')->to('module1#action1');
> >     $r->get('/r2')->to('module2#action2');
> >
> > }
> >
> > ну а в Logger#do_log написали
> >
> > save_log($self->req->to_string);
> >
> > все вроде хорошо, но вот теперь задачка расширяется на две разные:
> >
> > 1. надо рядом с логом положить сколько времени мы вообще этот запрос
> > обрабатывали
> > 2. надо логгировать и наши ответы
> >
> > как решить эти задачи не модифицируя все контроллеры?
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
С уважением, Александр
Личный блог: http://eax.me/
Мой форум: http://it-talk.org/
Мой Twitter: http://twitter.com/afiskon
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить