Wie schalte ich alle Fehler und Warnungen ein und protokolliere sie in einer Datei, aber um all das im Skript einzurichten (ohne etwas in der php.ini zu ändern)?
Ich möchte einen Dateinamen definieren, damit alle Fehler und Warnungen darin angemeldet werden.
php
error-handling
Gorep
quelle
quelle
ini_set
funktioniert nur, wenn dieser Code ausgeführt wird. Nicht nützlich für Code mit Analysefehlern, da der Fehler vor der Ausführung des Codes auftritt. Schreiben Sie diese Änderungen stattdessen in die php.ini.php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log
. Siehe perishablepress.com/...tmp/php-error.log
dem gewünschten Ort?Sehen
error_log
- Senden Sie irgendwo eine FehlermeldungBeispiel
Sie können die Fehlerbehandlung mit Ihren eigenen Fehlerbehandlungsroutinen anpassen , um diese Funktion für Sie aufzurufen, wenn ein Fehler oder eine Warnung auftritt oder was auch immer Sie protokollieren müssen. Weitere Informationen finden Sie im Kapitel Fehlerbehandlung im PHP-Handbuch
quelle
Fügen Sie einfach diese Codes oben in Ihre PHP / Index-Datei ein:
quelle
display_errors
Fügen Sie diesen Code in .htaccess hinzu (als Alternative zur Funktion php.ini / ini_set ):
* wie kommentiert: Dies gilt für Server vom Apache- Typ und nicht für Nginx oder andere.
quelle
Das ist meine persönliche Kurzfunktion
quelle
Schauen Sie sich die
log_errors
Konfigurationsoption in der php.ini an. Es scheint genau das zu tun, was Sie wollen. Ich denke, Sie können dieerror_log
Option auch verwenden, um Ihre eigene Protokolldatei festzulegen.Wenn die
log_errors
Direktive auf gesetzt istOn
, werden alle von PHP gemeldeten Fehler im Serverprotokoll oder in der mit angegebenen Datei protokollierterror_log
. Sie können diese Optionen beiini_set
Bedarf auch mit einstellen .(Bitte beachten Sie, dass
display_errors
dies in der php.ini deaktiviert sein sollte, wenn diese Option aktiviert ist.)quelle
display_errors
deaktiviert werden, wenn Sie aktivierenlog_errors
? Macht meiner Meinung nach keinen Sinn. :)Außerdem benötigen Sie die Anweisung "AllowOverride Options", damit dies funktioniert. (Apache 2.2.15)
quelle