Das Laravel-Framework implementiert die Vorgangsprotokollierungsfunktion mithilfe von Middleware

不言
Freigeben: 2023-03-30 10:52:02
Original
2531 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich das Laravel-Framework zur Implementierung der Operationsprotokollierungsfunktion mithilfe von Middleware vorgestellt. Er analysiert die Erstellung und Einführung der Laravel-Framework-Middleware und die damit verbundenen Implementierungstechniken zur Verwendung der Middleware für die Operationsprotokollierungsfunktion in Form von Beispielen. Was benötigt wird, Freunde können darauf verweisen

Dieser Artikel beschreibt das Beispiel des Laravel-Frameworks, das die Betriebsprotokollierungsfunktion mithilfe von Middleware implementiert. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Verwenden Sie Middleware für den Vorgangsprotokollierungsprozess:

1. Erstellen Sie Middleware

php artisan make:middleware AdminOperationLog
Nach dem Login kopieren

2. Die Datei ./app/Http/Middleware/AdminOperationLog.php

wird generiert lautet wie folgt:

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Models\OperationLog;
class AdminOperationLog
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $user_id = 0;
    if(Auth::check()) {
      $user_id = (int) Auth::id();
    }
    $_SERVER[&#39;admin_uid&#39;] = $user_id;
    if(&#39;GET&#39; != $request->method()){
      $input = $request->all();
      $log = new OperationLog(); # 提前创建表、model
      $log->uid = $user_id;
      $log->path = $request->path();
      $log->method = $request->method();
      $log->ip = $request->ip();
      $log->sql = &#39;&#39;;
      $log->input = json_encode($input, JSON_UNESCAPED_UNICODE);
      $log->save();  # 记录日志
    }
    return $next($request);
  }
}
Nach dem Login kopieren

3. Einführung der Middleware ./app/Http/Kernel.php

protected $middlewareGroups = [
    &#39;web&#39; => [
      ...
      \App\Http\Middleware\AdminOperationLog::class,
      ...
    ],
    &#39;api&#39; => [
      &#39;throttle:60,1&#39;,
      &#39;bindings&#39;,
    ],
  ];
Nach dem Login kopieren

Das Vorgangsprotokoll wird aufgezeichnet, wenn der Vorgang zu diesem Zeitpunkt ausgeführt wird

Verwandte Empfehlungen:

Laravel-Framework-Implementierung Der Listener führt die SQL-Anweisungsaufzeichnungsfunktion aus

Das obige ist der detaillierte Inhalt vonDas Laravel-Framework implementiert die Vorgangsprotokollierungsfunktion mithilfe von Middleware. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage