中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

扎鲁特旗| 绥化市| 岐山县| 六安市| 泰安市| 淳安县| 沂南县| 安国市| 蒙自县| 八宿县| 中方县| 集贤县| 彭水| 巫山县| 涿州市| 荃湾区| 即墨市| 班戈县| 武乡县| 天柱县| 东乡| 肇源县| 淄博市| 沙湾县| 鹿泉市| 丹阳市| 炉霍县| 石棉县| 饶平县| 北碚区| 罗田县| 商水县| 兴海县| 丰原市| 平舆县| 海丰县| 高雄县| 景东| 田林县| 如东县| 徐汇区|