亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel怎么使用中間件記錄用戶請求日志

發布時間:2022-05-02 19:24:38 來源:億速云 閱讀:462 作者:iii 欄目:編程語言

這篇文章主要講解了“laravel怎么使用中間件記錄用戶請求日志”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“laravel怎么使用中間件記錄用戶請求日志”吧!

一、創建中間件

  • 可以使用命令創建, 也可以直接創建

php artisan make:middleware 中間件名稱(TraceRecordMiddleware)

二、注冊中間件

  • 因為不同版本的laravel注冊中間價的方式不同, 這里以5.6版本為例

  • 直接在項目 bootstarp/app.php 中添加以下代碼即可

$app->middleware([
     App\Http\Middleware\TraceRecordMiddleware::class
 ]);

三、記錄用戶訪問日志

  • 其實中間價可以理解為請求攔截器

  • 所以可以攔截用戶請求前的數據, 以及用戶請求后的響應數據

  • 以下為基礎的中間價模版

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;

/**
 * Class TraceRecordMiddleware
 * @package App\Http\Middleware
 */
class TraceRecordMiddleware
{
    public function handle(Request $request, \Closure $next)
    {
        $response = $next($request);

        return $response;
    }
}

四、記錄用戶響應前數據

  • 你只需要記錄用戶訪問了哪些路由, 而不關系系統返回了哪些數據的話

<?php

namespace App\Http\Middleware;

use App\Model\SystemTraceRecord;
use Illuminate\Http\Request;

/**
 * Class TraceRecordMiddleware
 * @package App\Http\Middleware
 */
class TraceRecordMiddleware
{
    public function handle(Request $request, \Closure $next)
    {
        
        //插入數據庫日志表
        SystemTraceRecord::create([
            'method' => $request->getMethod(),
            'secure' => $request->getScheme(),
            'uri' => $request->getRequestUri(),
            'port' => $request->getPort()
        ]);

        return $next($request);
    }
}

五、記錄用戶響應后數據

  • 有時候你想要知道用戶請求后, 系統返回了什么數據的話

<?php

namespace App\Http\Middleware;

use App\Model\SystemTraceRecord;
use Illuminate\Http\Request;

/**
 * Class TraceRecordMiddleware
 * @package App\Http\Middleware
 */
class TraceRecordMiddleware
{
    public function handle(Request $request, \Closure $next)
    {
        $response = $next($request);
        
        //響應后插入數據
        SystemTraceRecord::create([
            'data' => json_encode($request->all(), JSON_UNESCAPED_UNICODE),
            'response' => $response->getContent() ?: '',
            'status' => $response->getStatusCode()
        ]);

        return $response;
    }
}

六、記錄用戶詳情日志

  • 有時候你需要知道是哪些用戶訪問的

  • 也可以直接獲取session數據

<?php

namespace App\Http\Middleware;

use App\Model\SystemTraceRecord;
use Illuminate\Http\Request;

/**
 * Class TraceRecordMiddleware
 * @package App\Http\Middleware
 */
class TraceRecordMiddleware
{
    public function handle(Request $request, \Closure $next)
    {
        $response = $next($request);

        $session = app('session');

        SystemTraceRecord::create([
            'user_id' => $session->get('user_info.id', '未知'),
            'username' => $session->get('user_info.username', '未知'),
            'method' => $request->getMethod(),
            'secure' => $request->getScheme(),
            'uri' => $request->getRequestUri(),
            'response' => $response->getContent() ?: '',
            'status' => $response->getStatusCode()
        ]);

        return $response;
    }
}

感謝各位的閱讀,以上就是“laravel怎么使用中間件記錄用戶請求日志”的內容了,經過本文的學習后,相信大家對laravel怎么使用中間件記錄用戶請求日志這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江口县| 色达县| 龙陵县| 道孚县| 丹凤县| 来宾市| 浦城县| 大宁县| 武定县| 尼玛县| 阿荣旗| 永福县| 浪卡子县| 辽阳县| 老河口市| 维西| 漳浦县| 彭州市| 曲水县| 江达县| 长白| 香港| 无为县| 铜山县| 新邵县| 应城市| 龙川县| 伊川县| 沧州市| 渭南市| 安阳县| 洪洞县| 德化县| 五家渠市| 北碚区| 繁昌县| 兰坪| 思茅市| 金门县| 布尔津县| 双柏县|