[Moscow.pm] Mojo: логгирование запросов

xames xamess на gmail.com
Чт Июл 19 05:03:38 PDT 2012


Взять за основу
http://cpansearch.perl.org/src/SRI/Mojolicious-3.10/lib/Mojolicious/Plugin/RequestTimer.pm
И допилить его нужным функционалом.

19 июля 2012 г., 15:41 пользователь Ivan Petrov
<i.petro.77.00 на gmail.com> написал:
>> Если с хуками не сложится, всегда можно решить проблему "в лоб":
>
>> 1. Старый хендлер переименовываем из blabla_handler например в
>> blabla_handler_raw
>> 2. В blabla_handler_raw делаем минимальные изменения - нужно вернуть или
>> положить в стэш кодификатор, строку или типа того, по которому мы узнаем, что
>> было возвращено
>> 3. В новом blabla_handler пишем обертку с замером времени и записью в лог
>
>
>
> вопрос с замером времени можно сделать прямо из бриджа, как-то так:
>
> sub do_log {
>     my ($self) = @_;
>
>     my $req_body = $self->req->to_string;
>     my $started_time = time;
>     $self->stash('guard' => guard { save_log $req_body, time -
>     $started_time  });
>
>     return 1;
> }
>
> поскольку в конце Mojo почистит стеши то и гуард выдернется.
> но это выглядит как хак.
>
> если копать в сторону хуков, то можно опять же нужным контроллерам в
> стеш класть пометку какую-то а в хуке смотреть есть ли такая пометка и
> если есть класть в лог вместе со временем.
>
> но это опять выглядит как хак
>
>
>> (А может лучше рассмотреть возможность изменить проект так, чтобы он был такой
>> весь из себя RESTfull и по url + коду возврата становилось ясно, что
>> спрашивалось и что получили?)
>
>
> да в общем-то так и есть.
>
> логгирование нужно чисто для *временного* мониторинга что и как происходит.
>
> примерно так: пришел багрепорт что вот этот роут выдает чет не то, с
> точки зрения клиента. у нас роут покрыт тестами довольно хорошо,
> соответственно нужен анализ действительно ли там что-то "не то", в каких
> случаях это "не то" и т п. мы ставим данный роут на логгирование и
> сабмитер бага пытается его повторить, ну а далее разбираются логи
> запросов (и вот теперь еще хотим и логи ответов). после разбора
> полетов случай попадает в тесты, логгирование  на роут убирается
>
> соответственно из задачи вытекает что модифицировать контроллеры
> совсем не хочется.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org


Подробная информация о списке рассылки Moscow-pm