Heim > Backend-Entwicklung > PHP-Tutorial > CodeIgniter-Middleware: Fügen Sie Ihrer Anwendung Leistungsprotokollierung und Fehlerprotokollierung hinzu

CodeIgniter-Middleware: Fügen Sie Ihrer Anwendung Leistungsprotokollierung und Fehlerprotokollierung hinzu

PHPz
Freigeben: 2023-07-31 12:12:02
Original
1638 Leute haben es durchsucht

CodeIgniter-Middleware: Leistungsprotokollierung und Fehlerprotokollierung zu Anwendungen hinzufügen

Zitat:
Leistungsprotokollierung und Fehlerprotokollierung sind bei der Entwicklung von Webanwendungen sehr wichtig. Um die Anwendungsleistung effektiv überwachen und optimieren zu können, müssen wir in der Lage sein, die Ausführungszeit der Anwendung zu ermitteln und in der Anwendung generierte Fehlerinformationen aufzuzeichnen. CodeIgniter bietet Middleware-Funktionen, mit denen sich problemlos Leistungsprotokolle und Fehleraufzeichnungsfunktionen zu Anwendungen hinzufügen lassen. In diesem Artikel wird erläutert, wie Sie Middleware in CodeIgniter verwenden, um Leistungsprotokollierungs- und Fehleraufzeichnungsfunktionen zu implementieren.

1. Middleware erstellen
Zuerst müssen wir eine Middleware-Klasse erstellen. In CodeIgniter ist die Middleware-Klasse eine Klasse, die die CI_Middleware-Klasse erbt. Wir können die Middleware-Klasse im Verzeichnis application/middleware platzieren (wenn das Verzeichnis nicht existiert, müssen Sie es manuell erstellen). Hier ist der Code für eine Beispiel-Middleware-Klasse:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class PerformanceLoggerMiddleware extends CI_Middleware {
    public function handle(RequestInterface $request, Closure $next)
    {
        // 记录请求开始时间
        $startTime = microtime(true);

        // 执行下一个中间件或路由处理器
        $response = $next($request);

        // 计算请求执行时间
        $endTime = microtime(true);
        $executionTime = $endTime - $startTime;

        // 将执行时间记录到日志中
        log_message('info', 'Request execution time: ' . $executionTime);

        return $response;
    }
}
Nach dem Login kopieren

Im obigen Code haben wir eine Middleware-Klasse namens PerformanceLoggerMiddleware erstellt. Diese Middleware-Klasse erbt die CI_Middleware-Klasse und implementiert die Handle-Methode. Die Handle-Methode erhält als Parameter ein RequestInterface-Objekt und ein Closure-Objekt. Bei der Handle-Methode zeichnen wir zunächst den Zeitpunkt des Anforderungsstarts auf, führen dann die nächste Middleware oder den nächsten Routenprozessor aus, berechnen dann den Zeitpunkt der Anforderungsausführung und zeichnen ihn im Protokoll der Anwendung auf.

2. Registrieren Sie die Middleware
Als nächstes müssen wir die Middleware bei CodeIgniter registrieren. Um dies zu erreichen, müssen wir einige Konfigurationen vornehmen. Öffnen Sie zunächst die Datei application/config/config.php, suchen Sie das folgende Konfigurationselement und setzen Sie es auf „true“:

$config['enable_hooks'] = true;
Nach dem Login kopieren

Öffnen Sie dann die Datei application/config/hooks.php und fügen Sie den folgenden Code in das Code-Snippet unten ein:

$hook['pre_system'][] = [
    'class' => 'PerformanceLoggerMiddleware',
    'function' => 'handle',
    'filename' => 'PerformanceLoggerMiddleware.php',
    'filepath' => 'middleware',
];
Nach dem Login kopieren

Im obigen Code registrieren wir die PerformanceLoggerMiddleware-Klasse als Verarbeitungsfunktion des pre_system-Hooks. Dies bedeutet, dass die Handle-Methode von PerformanceLoggerMiddleware ausgeführt wird, bevor jede Anfrage verarbeitet wird.

3. Testen Sie die Middleware
Da wir nun die Erstellung und Registrierung der Middleware abgeschlossen haben, können wir sie testen. Wir können dies testen, indem wir den Hauptcontroller der Anwendung ändern. Hier ist ein Beispiel für einen Controller-Code:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
    public function index()
    {
        sleep(1);  // 模拟一个耗时操作

        $this->load->view('welcome_message');
    }
}
Nach dem Login kopieren

Im obigen Code simulieren wir einen zeitaufwändigen Vorgang (mithilfe der Sleep-Funktion) und laden dann eine Ansichtsdatei. Wenn wir auf den Controller zugreifen, zeichnet die Middleware die Ausführungszeit der Anfrage auf und protokolliert sie in der Protokolldatei der Anwendung.

4. Sehen Sie sich die Protokolle an
Abschließend können wir die von der Middleware aufgezeichneten Leistungsprotokolle anzeigen, indem wir die Protokolldatei der Anwendung öffnen. In CodeIgniter werden die Standardprotokolldateien im Verzeichnis application/logs gespeichert. Hier ist der Inhalt der Protokolldatei als Beispiel:

INFO - 2019-01-01 10:00:00 --> Request execution time: 1.02345204353
Nach dem Login kopieren

Im obigen Beispiel können wir sehen, dass die Ausführungszeit der Anfrage aufgezeichnet wird.

Zusammenfassung:
Durch die Verwendung von Middleware in CodeIgniter können wir unseren Anwendungen problemlos Leistungsprotokollierungs- und Fehlerprotokollierungsfunktionen hinzufügen. In diesem Artikel haben wir vorgestellt, wie man eine Middleware-Klasse erstellt und bei CodeIgniter registriert. Anhand eines einfachen Beispiels demonstrieren wir, wie Sie mit Middleware die Ausführungszeit einer Anfrage aufzeichnen und in der Protokolldatei der Anwendung protokollieren. Dieser Ansatz kann uns helfen, unsere Webanwendungen besser zu überwachen und zu optimieren und ein besseres Benutzererlebnis zu bieten.

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

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