Heim  >  Artikel  >  PHP-Framework  >  Detailliertes Beispiel für Laravel, das Middleware zum Aufzeichnen von Benutzeranfrageprotokollen verwendet

Detailliertes Beispiel für Laravel, das Middleware zum Aufzeichnen von Benutzeranfrageprotokollen verwendet

WBOY
WBOYnach vorne
2022-04-26 11:53:013932Durchsuche

Dieser Artikel bringt Ihnen relevantes Wissen über laravel, in dem hauptsächlich verwandte Probleme bei der Verwendung von Middleware zum Aufzeichnen von Benutzeranforderungsprotokollen vorgestellt werden, einschließlich der Erstellung von Middleware, der Registrierung von Middleware, der Aufzeichnung des Benutzerzugriffs usw. Ich hoffe, wir schauen uns das gemeinsam an es wird für alle hilfreich sein.

Detailliertes Beispiel für Laravel, das Middleware zum Aufzeichnen von Benutzeranfrageprotokollen verwendet

【Verwandte Empfehlung: Laravel-Video-Tutorial

1. Middleware erstellen

  • Sie können Befehle verwenden, um sie zu erstellen, oder Sie können sie direkt erstellen
php artisan make:middleware 中间件名称(TraceRecordMiddleware)

2. Registrieren Sie Middleware

  • Da verschiedene Versionen von Laravel unterschiedliche Methoden zur Registrierung des Durchschnittspreises haben, hier als Beispiel Version 5.6.
  • Fügen Sie einfach den folgenden Code direkt zum Projekt hinzu: bootstarp/app.php Benutzerzugriffsprotokolle
Tatsächlich kann der mittlere Preis als Anforderungs-Interceptor verstanden werden

Damit er die Daten vor der Anfrage des Benutzers sowie die Antwortdaten nach der Anfrage des Benutzers abfangen kann

Die Vorlage basiert auf der mittleren Preisvorlage auf dem folgenden
  • $app->middleware([
         App\Http\Middleware\TraceRecordMiddleware::class
     ]);
  • Vier. Zeichnen Sie die Daten vor der Antwort des Benutzers auf
  • Sie müssen nur aufzeichnen, welche Routen der Benutzer besucht hat, aber nicht, welche Daten das System zurückgegeben hat
<?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;
    }
}

5 geantwortet

  • Manchmal möchten Sie wissen, was das System zurückgegeben hat, nachdem der Benutzer es angefordert hat. Was die Daten angeht

<?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);
    }
}
6. Benutzerdetailsprotokoll aufzeichnen
  • Manchmal müssen Sie wissen, auf welche Benutzer zugegriffen hat

Das können Sie auch Sitzungsdaten direkt abrufen
<?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;
    }
}

[Verwandte Empfehlungen:
    Laravel-Video-Tutorial
  • ]

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für Laravel, das Middleware zum Aufzeichnen von Benutzeranfrageprotokollen verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen