2014-11-25 2 views
5

Я пытаюсь поймать проблему относительно определенного ответа laravel, поэтому я использую фильтр after, чтобы регистрировать все действия, но я не могу понять, как отправить запрос и информацию ответа в журнал.laravel запрос и ответ регистрации

App::after(
    function ($request, $response) { 
     Log::info('access.log', array('request' => $request->headers, 'response' => $response->headers)); 
    } 
); 

Этот код не содержит информацию о статусе кода для ответа, который меня больше всего интересует.

Есть ли способ увидеть, что выходит на заключительном этапе передачи информации на веб-сервер? Что-то вроде этого?

HTTP/1.1 200 OK 
Date: Tue, 25 Nov 2014 22:35:17 GMT 
Server: Apache/2.2.14 (Ubuntu) 
X-Powered-By: PHP/5.4.34-1+deb.sury.org~lucid+1 
Cache-Control: no-cache, max-age=0 
Expires: Tue, 25 Nov 2014 22:35:17 GMT 
Content-Type: application/json 
Via: 1.1 localhost:8080 
Vary: Accept-Encoding 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Content-Length: 59 

{"success":true,"result":{"min":5.7,"mean":9.7,"max":14.2}} 

ответ

1

Код статуса, наконец, возвращен в заголовках, на этом этапе вы не найдете его в атрибуте $ headers. Вы все равно можете получить код состояния, вызвав $ response-> getStatusCode()

1

Хотя это старый пост, мне недавно хотелось увидеть все входящие запросы и все исходящие ответы в Laravel.

This package поддерживает как laravel 5, так и 5.1, поэтому я предполагаю, что вы также можете использовать его.

Для установки:

Композитор

Добавить prettus/Laravel-запрос-регистратор в разделе "требуется" файла composer.json.

"prettus/laravel-request-logger": "1.0.*" Run composer update to get the latest version of the package. 

или Запустить

composer require prettus/laravel-request-logger 

непосредственно в терминале

Laravel

В вашей конфигурации/app.php добавить 'Prettus \ RequestLogger \ Providers \ LoggerServiceProvider' до конца от Поставщики:

'providers' => array(
..., 
'Prettus\RequestLogger\Providers\LoggerServiceProvider',), 

Опубликовать конфигурацию

php artisan vendor:publish --provider="Prettus\RequestLogger\Providers\LoggerServiceProvider" Configuration 

В файле config/request-logger.php, вы можете изменить конфигурацию для регистратора

'logger' => [ 

'enabled' => true, 

'handlers' => ['Prettus\RequestLogger\Handler\HttpLoggerHandler'], 

'file'  => storage_path("logs/http.log"), 

'level'  => 'info', 

'format' => 'common' ] 

Примеры:

{метод} {полный URL}

[2015-04-03 00:00:00] local.INFO: GET http://prettus.local/user/1?param=lorem [ "REQUEST"] {метод} {полный URL} {remote- addr} {port}

[2015-04-03 00:00:00] local.INFO: GET http://prettus.local/user/1?param=lorem 192.168.10.1 80 ["ЗАПРОС"] {method} {root} {url} {full-url} {path} {decoded-path} {remote-addr} {format} {scheme} {port} {query-string}

[2015-04-03 00:00:00] local.INFO: GET http://prettus.local http://prettus.local/user/1http://prettus.local/user/1?param=lorem пользователя/1 пользователь/1 192.168.10.1 HTML HTTP 80 пары = Lorem [ "REQUEST"] [{статуса }] HTTP: {http-версия} {content}

[2015-04-03 00:00:00] local.INFO: [200] HTTP: 1.1 {"id": 1, "name": «Андерсон Андраде», «электронная почта»: «[email protected]»} ["RESPONSE"]

+0

Мне очень хотелось бы исправить это, однако из того, что я мог сказать, этот провайдер работает только с протоколированием файлов. Мне не удалось заставить его работать с обработчиком elasticsearch –

+0

Работает ли это с Laravel 4.1? Я попытался, но потерпел неудачу. Может кто-нибудь пролить некоторый свет на это. – AMBasra

+0

Не уверен, потому что в то время и в моем посте я упоминаю 5 и 5.1. В описании на github также упоминаются версии 5 и 5.1 – davejal

0

Наряду с запросом на отсылку/ответом на журнал вы можете попробовать this service, чтобы получить хороший интерфейс.

Смежные вопросы