2014-11-25 11 views
5

Sto cercando di rilevare un problema relativo a una determinata risposta laravel, quindi sto utilizzando il filtro after per registrare tutte le attività, ma non riesco a capire come scaricare le informazioni di richiesta e risposta nel log.registrazione laravel di richieste e risposte

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

Questo codice non fornisce informazioni sul codice di stato per la risposta, che sono per lo più interessato.

C'è un modo per vedere ciò che viene fuori nella fase finale di passare le informazioni al server web? Qualcosa come questo?

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}} 

risposta

1

Mentre il codice di stato è finalmente restituito nelle intestazioni, in questa fase non lo troverai nell'attributo $ headers. È ancora possibile ottenere il codice di stato chiamando $ response-> getStatusCode()

1

Anche se questo è un vecchio post, di recente ho voluto vedere tutte le richieste in arrivo e tutte le risposte in uscita in laravel.

This package supporta sia laravel 5 che 5.1, quindi presumo che potresti anche usarlo.

Per installare:

Compositore

Aggiungi prettus/laravel-richiesta-logger alla sezione "richiedono" del file composer.json.

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

o Esegui

composer require prettus/laravel-request-logger 

direttamente nel vostro terminale

laravel

Nel vostro config/app.php aggiungere 'Prettus \ RequestLogger \ Providers \ LoggerServiceProvider' fino alla fine di l'array di provider:

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

Pubblicare configurazione

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

Nel file config/request-logger.php, è possibile modificare la configurazione per logger

'logger' => [ 

'enabled' => true, 

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

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

'level'  => 'info', 

'format' => 'common' ] 

Esempi:

.515.053.691,36321 milioni

{metodo} {full-url}

[2015/04/03 00:00:00] local.INFO: GET http://prettus.local/user/1?param=lorem [ "RICHIESTA"] {} metodo {full-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 ["REQUEST"] {method} {root} {url} {full-url} {path} {percorso decodificato} {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 utente/1 utente/1 192.168.10.1 html http 80 param = lorem [ "RICHIESTA"] [{status }] HTTP: {http-versione} {contenuto}

[2015-04-03 00:00:00] local.INFO: [200] HTTP: 1.1 {"id": 1, "nome": "Anderson Andrade", "email": "[email protected]"} ["RISPOSTA"]

+0

Mi piacerebbe essere corretto su questo, tuttavia da quello che potrei dire questo provider funziona solo con la registrazione dei file. Non ero in grado di farlo funzionare con il gestore di elasticsearch –

+0

Funziona con Laravel 4.1? Ho provato ma ho fallito. Qualcuno può far luce su questo. – AMBasra

+0

Non sono sicuro, perché in quel momento e nel mio post ho menzionato 5 e 5.1. Nella descrizione su github, menziona anche solo le versioni 5 e 5.1 – davejal

0

Insieme alla richiesta di dumping/risposta al registro è possibile provare this service per ottenere una bella interfaccia utente.

Problemi correlati