Fehler in PHP protokollieren
-
Verwenden Sie
ini_set(), um die PHP-Fehlerprotokollierung zu aktivieren -
Verwenden Sie
error_log(), um Fehler in PHP zu protokollieren -
Verwenden Sie
error_reporting(), um Fehler in PHP im Browser zu protokollieren
Das Protokollieren von Fehlern ist unerlässlich, wenn wir Anwendungen entwickeln, einschließlich PHP-Anwendungen. Daher ist es wichtig zu wissen, wie man Fehler in PHP protokolliert, und sich nicht auf print_r() und var_dump() zu verlassen, um zu wissen, wenn etwas schief gelaufen ist.
In diesem Artikel werden alle Funktionen besprochen, die wir verwenden müssen, um die Fehlerprotokollierung in PHP zu aktivieren und damit zu arbeiten.
Verwenden Sie ini_set(), um die PHP-Fehlerprotokollierung zu aktivieren
Öffnen Sie vor allem die Datei php.ini und überprüfen Sie, ob display_errors auf On gesetzt ist, genau wie im Bild unten.

Zusätzlich müssen Sie in der Datei php.ini nach error_reporting-Bedingungen suchen. Wenn Ihre Version PHP 8.1 ist, sehen Sie möglicherweise error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT in Ihrer php.ini-Datei.
Fügen Sie jedoch sicherheitshalber die folgenden Zeilen hinzu.
error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
Damit Sie Fehler ordnungsgemäß protokollieren können, müssen Sie die Funktion ini_set() verwenden, um die Fehlerprotokollierung zu aktivieren. Mit dieser Funktion können wir den Wert einer Konfigurationsoption festlegen, z. B. Fehlerprotokollierungsoptionen.
Wir können die PHP-Fehlerprotokollierung innerhalb unserer Codebasis mit einer Option und einem Wert konfigurieren. Das folgende Code-Snippet zeigt uns die Optionen und die benötigten Werte.
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
Wenn wir Fehler in unseren PHP-Skripten protokollieren müssen, müssen wir sie in dieses Skript aufnehmen. Um das DRY-Prinzip beizubehalten, sollten wir eine PHP-Datei erstellen, die den obigen Code enthält, und ihn in jedem PHP benötigen, das wir benötigen.
require_once('error.php');
Verwenden Sie error_log(), um Fehler in PHP zu protokollieren
Jetzt, da wir unsere PHP-Umgebung so konfiguriert haben, dass die PHP-Fehlerprotokollierung aktiviert ist, können wir die äußerst wichtige Funktion error_log() verwenden.
Mit dieser Funktion reduzieren wir die Verwendung der Funktionen print_r() und var_dump() zum Debuggen (insbesondere in der Produktionsumgebung) und erstellen spezielle Fehlervorlagen, um uns mitzuteilen, dass etwas nicht richtig funktioniert.
Um zu zeigen, wie error_log() funktioniert, können wir die Funktion verwenden, um uns mitzuteilen, dass eine Eingabeoperation zum Lesen einer Datei fehlgeschlagen ist. Im Code-Snippet lesen wir die PHP-Eingabe mit der Funktion file_get_contents, und wenn $data leer ist (was bei einer NOT-Bedingung true setzt), wird die No file read. Fehlermeldung wird protokolliert.
$data = file_get_contents('php://input');
if (!$data) {
error_log("No file read. Check input conditions or values.");
}
Die Ausgabe des Codes, wenn es keine Eingabe für die Funktion file_get_contents() gibt, ist unten.
No file read. Check input conditions or values.
Wie Sie sehen können, nimmt die Funktion error_log() ein message-Argument entgegen. Abgesehen von diesem Argument werden die Argumente message_type, destination und additional_headers benötigt.
Verschiedene Protokolltypen definieren den ganzzahligen Wert, den Sie für die Funktion error_log parsen; Weitere Einzelheiten dazu finden Sie in der PHP-Dokumentation.
Wenn Sie beispielsweise die Fehlermeldung an den PHP-Systemlogger senden möchten, verwenden Sie als Nachrichtentyp 0.
Sie können auch mit dem Nachrichtentyp 3 in einem Dateiziel speichern, wie im folgenden Code-Snippet.
error_log("No file read. Check input conditions or values.", 3, "/my-errors.log");
Verwenden Sie error_reporting(), um Fehler in PHP im Browser zu protokollieren
Neben der Funktion ini_set() können wir einstellen, welche PHP-Fehler gemeldet werden. Dabei hilft uns die Funktion error_reporting().
Erinnern Sie sich an die Fehler-PHP-Datei, die wir erstellt haben, um von jeder PHP-Datei benötigt zu werden, die sie benötigt; Wir können diese Funktion und ihre Parameter dort hinzufügen.
-
So deaktivieren Sie alle Fehlerberichte in Ihrem PHP-Codebereich.
error_reporting(0); -
Um einfache Ausführungsfehler zu melden (schwerwiegende Laufzeitfehler, Laufzeitwarnungen und Parsing-Fehler bei der Kompilierung).
error_reporting(E_ERROR | E_WARNING | E_PARSE); -
Um nicht initialisierte Variablen zu melden oder Rechtschreibfehler bei Variablennamen abzufangen (Laufzeitbenachrichtigungen).
```php
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
```
-
Um alle Fehler außer Laufzeitbenachrichtigungen zu melden.
error_reporting(E_ALL & ~E_NOTICE); -
Um alle Arten von PHP-Fehlern zu melden.
error_reporting(E_ALL); error_reporting(-1); ini_set('error_reporting', E_ALL);
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn