Heim >Backend-Entwicklung >PHP-Tutorial >Laravel-Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Leistungsüberwachungsfunktionen hinzu

Laravel-Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Leistungsüberwachungsfunktionen hinzu

PHPz
PHPzOriginal
2023-07-28 14:45:37914Durchsuche

Laravel-Middleware: Protokollierungs- und Leistungsüberwachungsfunktionen zu Anwendungen hinzufügen

Einführung:
Protokollierung und Leistungsüberwachung sind sehr wichtige Funktionen bei der Entwicklung moderner Webanwendungen. Protokolle können Entwicklern dabei helfen, in Anwendungen auftretende Ereignisse, Fehler und Ausnahmen zu verfolgen, während die Leistungsüberwachung Entwicklern dabei helfen kann, Leistungsengpässe zu erkennen und diese zu optimieren. Das Laravel-Framework bietet leistungsstarke Middleware-Funktionen, die es Entwicklern ermöglichen, Anwendungen einfach Protokollierungs- und Leistungsüberwachungsfunktionen hinzuzufügen. In diesem Artikel wird erläutert, wie Sie die Laravel-Middleware zum Implementieren dieser Funktionen verwenden, und es werden Codebeispiele bereitgestellt.

1. Was ist Laravel-Middleware?
Laravel-Middleware ist ein Filter, der ausgeführt werden kann, bevor oder nachdem die Anfrage die Anwendung erreicht. Durch den Einsatz von Middleware können Entwickler Vor- oder Nachbearbeitungsvorgänge für Anfragen durchführen, wie z. B. Authentifizierung, Protokollierung, Leistungsüberwachung usw. Middleware kann einer Anwendung zusätzliche Funktionalität hinzufügen und eine gute Codeorganisation und Wiederverwendbarkeit bieten.

2. Protokollierungsfunktion zur Anwendung hinzufügen
In Laravel können wir Middleware verwenden, um der Anwendung eine Protokollierungsfunktion hinzuzufügen. Hier ist ein einfaches Beispiel, das zeigt, wie eine Middleware verwendet wird, um die Start- und Endzeit jeder Anfrage zu protokollieren:

Erstellen Sie zunächst eine Middleware mit dem Namen LogMiddleware: LogMiddleware的中间件:

php artisan make:middleware LogMiddleware

在生成的app/Http/Middleware/LogMiddleware.php文件中,添加以下代码:

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesLog;

class LogMiddleware
{
    public function handle($request, Closure $next)
    {
        $start = microtime(true);
        
        // 继续处理请求
        $response = $next($request);
        
        // 计算请求执行时间
        $end = microtime(true);
        $executionTime = $end - $start;
        
        // 记录日志
        Log::info('Request completed in ' . $executionTime . ' seconds');
        
        return $response;
    }
}

然后,在app/Http/Kernel.php文件的$middleware数组中注册中间件:

protected $middleware = [
    // ...
    AppHttpMiddlewareLogMiddleware::class,
];

现在,每次发起请求时,中间件将会记录请求的执行时间,并将其写入日志中。

三、为应用程序添加性能监控功能
除了日志记录外,我们还可以使用中间件来为应用程序添加性能监控功能。下面是一个简单的示例,展示如何使用中间件计算每个请求的执行时间,并将其记录下来:

首先,创建一个名为PerformanceMiddleware的中间件:

php artisan make:middleware PerformanceMiddleware

在生成的app/Http/Middleware/PerformanceMiddleware.php文件中,添加以下代码:

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesDB;
use IlluminateSupportFacadesLog;

class PerformanceMiddleware
{
    public function handle($request, Closure $next)
    {
        $start = microtime(true);
        
        // 继续处理请求
        $response = $next($request);
        
        // 计算请求执行时间
        $end = microtime(true);
        $executionTime = $end - $start;
        
        // 获取SQL查询次数
        $queryCount = DB::getQueryLog();
        $queryCount = count($queryCount);
        
        // 记录性能信息
        Log::info('Request completed in ' . $executionTime . ' seconds');
        Log::info('Number of database queries: ' . $queryCount);
        
        return $response;
    }
}

然后,在app/Http/Kernel.php文件的$middleware

protected $middleware = [
    // ...
    AppHttpMiddlewarePerformanceMiddleware::class,
];

Im generierten In der >app/Http/Middleware/LogMiddleware.php-Datei den folgenden Code hinzufügen:

rrreee

Dann in der app/Http/Kernel.php-Datei $middleware Array: <p>rrreee<br> Jetzt zeichnet die Middleware jedes Mal, wenn eine Anfrage gestellt wird, die Ausführungszeit der Anfrage auf und schreibt sie in das Protokoll. </p>🎜3. Leistungsüberwachungsfunktionen zu Anwendungen hinzufügen🎜Zusätzlich zur Protokollierung können wir auch Middleware verwenden, um Anwendungen Leistungsüberwachungsfunktionen hinzuzufügen. Hier ist ein einfaches Beispiel, das zeigt, wie man eine Middleware verwendet, um die Ausführungszeit jeder Anfrage zu berechnen und sie zu protokollieren: 🎜🎜Erstellen Sie zunächst eine Middleware mit dem Namen <code>PerformanceMiddleware: 🎜rrreee🎜Im generierten app/Http/Middleware/PerformanceMiddleware.php Datei, fügen Sie den folgenden Code hinzu: 🎜rrreee🎜Dann registrieren Sie in der Datei app/Http/Kernel.php die Middleware in der $middleware array: 🎜rrreee🎜Jedes Mal, wenn eine Anfrage gestellt wird, berechnet die Middleware nun die Ausführungszeit der Anfrage und die Anzahl der Datenbankabfragen und schreibt sie in das Protokoll, um Entwicklern bei der Leistungsanalyse zu helfen. 🎜🎜Zusammenfassung: 🎜Durch die Verwendung der Laravel-Middleware können wir unseren Anwendungen problemlos Protokollierungs- und Leistungsüberwachungsfunktionen hinzufügen. In diesem Artikel stellen wir zwei Beispiele vor, die zeigen, wie man mit Middleware die Ausführungszeit einer Anfrage und die Anzahl der Datenbankabfragen aufzeichnet und in ein Protokoll schreibt. Durch den Einsatz dieser Middlewares können Entwickler besser verstehen, wie ihre Anwendungen ausgeführt werden, und diese entsprechend anpassen und optimieren. Ich hoffe, dass die Leser durch diesen Artikel ein Verständnis für die Verwendung der Laravel-Middleware gewinnen und diese flexibel in der tatsächlichen Entwicklung anwenden können. 🎜

Das obige ist der detaillierte Inhalt vonLaravel-Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Leistungsüberwachungsfunktionen hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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