目次
どのユーザーがアクセスしたかを知る必要がある場合があります セッション データを直接取得することもできます
ホームページ PHPフレームワーク Laravel ミドルウェアを使用してユーザーリクエストログを記録するlaravelの詳細な例

ミドルウェアを使用してユーザーリクエストログを記録するlaravelの詳細な例

Apr 26, 2022 am 11:53 AM
laravel

この記事では、laravel に関する関連知識を提供します。主に、ミドルウェアの作成、ミドルウェアの登録、ユーザー アクセスやその他のコンテンツの記録など、ミドルウェアを使用してユーザー リクエスト ログを記録することに関する関連問題を紹介します。以下をご覧ください。皆様のお役に立てれば幸いです。

ミドルウェアを使用してユーザーリクエストログを記録するlaravelの詳細な例

#[関連する推奨事項:

laravel ビデオ チュートリアル]

1. ミドルウェアの作成

    コマンドを使用して作成することも、直接作成することもできます
php artisan make:middleware 中间件名称(TraceRecordMiddleware)
ログイン後にコピー

2. 登録ミドルウェア

    理由は異なります。 laravel のバージョンが登録されている 中間価格の設定方法が異なる ここではバージョン 5.6 を例にします
  • 次のコードをプロジェクト
  • bootstarp/app.php に直接追加します
  • #
$app->middleware([
     App\Http\Middleware\TraceRecordMiddleware::class
 ]);
ログイン後にコピー

3. ユーザー アクセス ログを記録する

#実際、中間価格はリクエスト インターセプタとして理解できます
    #したがって、ユーザーのリクエスト前のデータとユーザーのリクエスト後の応答データをインターセプトします。
  • 以下に基づく中間価格テンプレート
  • #
    <?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;
        }
    }
    ログイン後にコピー
  • 4. ユーザーの応答の前にデータを記録します
ユーザーが訪れたルートを記録するだけでよく、システムがどのようなデータを返すかは問題ではありません

#
<?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([
            &#39;method&#39; => $request->getMethod(),
            'secure' => $request->getScheme(),
            'uri' => $request->getRequestUri(),
            'port' => $request->getPort()
        ]);

        return $next($request);
    }
}
ログイン後にコピー
    5. ユーザーの応答後にデータを記録します

ユーザーのリクエスト後に、システムによってどのようなデータが返されたのかを知りたい場合があります。
<?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([
            &#39;data&#39; => json_encode($request->all(), JSON_UNESCAPED_UNICODE),
            'response' => $response->getContent() ?: '',
            'status' => $response->getStatusCode()
        ]);

        return $response;
    }
}
ログイン後にコピー

    6. ユーザーの詳細ログを記録します

どのユーザーがアクセスしたかを知る必要がある場合があります セッション データを直接取得することもできます

    <?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(&#39;session&#39;);
    
            SystemTraceRecord::create([
                &#39;user_id&#39; => $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の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Laravel - アーティザンコマンド Laravel - アーティザンコマンド Aug 27, 2024 am 10:51 AM

    Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

    Laravel - ページネーションのカスタマイズ Laravel - ページネーションのカスタマイズ Aug 27, 2024 am 10:51 AM

    Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

    Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

    Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

    Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Mar 31, 2025 pm 11:24 PM

    LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

    Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

    Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

    DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? Apr 01, 2025 am 07:09 AM

    DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

    Laravel - ダンプサーバー Laravel - ダンプサーバー Aug 27, 2024 am 10:51 AM

    Laravel - ダンプサーバー - Laravel ダンプサーバーには、Laravel 5.7 のバージョンが付属しています。以前のバージョンにはダンプ サーバーが含まれていません。ダンプサーバーはlaravel/laravelコンポーザーファイルの開発依存関係になります。

    Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Apr 01, 2025 am 07:45 AM

    Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。

    See all articles