laravel请求和响应记录

时间:2014-11-25 22:53:25

标签: logging laravel

我正在尝试捕获有关某个laravel响应的问题,因此我使用after过滤器来记录所有活动,但我无法弄清楚如何将请求和响应信息转储到日志中。

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

此代码不提供响应的状态代码信息,我最感兴趣。

有没有办法看到在向Web服务器传递信息的最后阶段出现了什么?像这样的东西?

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

3 个答案:

答案 0 :(得分:1)

虽然状态代码最终在标题中返回,但在此阶段您将无法在$ headers属性中找到它。您仍然可以通过调用 $ response-> getStatusCode()

来获取状态代码

答案 1 :(得分:1)

虽然这是一篇旧帖子,但我最近想在Laravel中查看所有传入请求和所有传出回复。

This package支持laravel 5和5.1,所以我假设您也可以使用它。

安装:

  

作曲

     

将prettus / laravel-request-logger添加到"要求"你的部分   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

     

在你的config / app.php中添加   ' Prettus \ RequestLogger \提供商\ LoggerServiceProvider'到了最后   providers数组:

'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' ]

<强>示例:

  

{method} {full-url}

     

[2015-04-03 00:00:00] local.INFO:GET   http://prettus.local/user/1?param=lorem [&#34;请求&#34;] {方法}   {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 [&#34;请求&#34;]   {method} {root} {url} {full-url} {path} {decoding-path} {remote-addr}   {format} {scheme} {port} {query-string}

     

[2015-04-03 00:00:00] local.INFO:GET http://prettus.local   http://prettus.local/user/1 http://prettus.local/user/1?param=lorem   user / 1 user / 1 192.168.10.1 html http 80 param = lorem [&#34; REQUEST&#34;]   [{status}] HTTP:{http-version} {content}

     

[2015-04-03 00:00:00] local.INFO:[200] HTTP:1.1   {&#34; id&#34;:1,&#34; name&#34;:&#34; Anderson Andrade&#34;,&#34; email&#34;:&#34; contato@andersonandra.de&# 34;}   [&#34; RESPONSE&#34;]

答案 2 :(得分:0)

除了转储请求/响应日志之外,您还可以尝试使用this service来获得更好的用户界面。

相关问题