Wie protokolliere ich Fehler und Warnungen in einer Datei?

Lesezeit: 4 Minuten

Wie protokolliere ich Fehler und Warnungen in einer Datei
Gorep

Wie schalte ich alle Fehler und Warnungen ein und protokolliere sie in einer Datei, aber um all das innerhalb des Skripts einzurichten (ohne etwas in php.ini zu ändern)?

Ich möchte einen Dateinamen definieren und damit alle Fehler und Warnungen darin protokolliert werden.

1646936647 984 Wie protokolliere ich Fehler und Warnungen in einer Datei
Ein Mann

Verwenden Sie den folgenden Code:

ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );

Dann schauen Sie sich die Datei an:

tail -f /tmp/php-error.log

Oder aktualisieren php.ini wie beschrieben in diesen Blogeintrag ab 2008.

  • ini_set funktioniert nur, wenn dieser Code ausgeführt wird. Nicht nützlich für Code, der hat Fehler analysieren weil der Fehler sein wird Vor der Code wird ausgeführt. Schreiben Sie diese Änderungen stattdessen in die php.ini.

    – hakre

    16. April 2013 um 23:31 Uhr


  • Wenn Sie die php.ini nicht bearbeiten können, sollten Sie dies in der .htaccess hinzufügen können: php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log. Sehen perishablepress.com/…

    – Matthias

    8. Januar 2014 um 8:47 Uhr


  • Ich habe eine Frage, wie bekomme ich die error.log-Datei stattdessen in meinem htdocs-Ordner erstellt?

    – Tommi

    5. März 2014 um 21:51 Uhr

  • Ich schätze, du änderst einfach den Ordner von tmp/php-error.log an welchen Ort Sie sich wünschen?

    – Lukas

    16. April 2014 um 12:37 Uhr

  • Dies bringt mein PHP in 5.4.0 zum Absturz

    – Ky.

    10. Mai 2014 um 3:05 Uhr

1646936648 646 Wie protokolliere ich Fehler und Warnungen in einer Datei
Gordon

Sehen

  • error_log — Senden Sie irgendwo eine Fehlermeldung

Beispiel

error_log("You messed up!", 3, "/var/tmp/my-errors.log");

Du kannst Passen Sie die Fehlerbehandlung mit Ihren eigenen Fehlerbehandlungsroutinen an um diese Funktion für Sie aufzurufen, wenn ein Fehler oder eine Warnung auftritt oder was auch immer Sie protokollieren müssen. Weitere Informationen entnehmen Sie bitte der Kapitel Fehlerbehandlung im PHP-Handbuch

  • Außer PHP kann nichts protokollieren, wenn ein schwerwiegender Fehler aufgetreten ist.

    – Salmann A

    7. Juli 2021 um 13:24 Uhr

1646936649 731 Wie protokolliere ich Fehler und Warnungen in einer Datei
Yousha Aleayoub

Fügen Sie einfach diese Codes oben in Ihre PHP/Index-Datei ein:

error_reporting(E_ALL); // Error/Exception engine, always use E_ALL

ini_set('ignore_repeated_errors', TRUE); // always use TRUE

ini_set('display_errors', FALSE); // Error/Exception display, use FALSE only in production environment or real server. Use TRUE in development environment

ini_set('log_errors', TRUE); // Error/Exception file logging engine.
ini_set('error_log', 'your/path/to/errors.log'); // Logging file path

  • Das ist nur, wenn Sie Auch dass alle Fehler in der Ausgabe und/oder im Browser angezeigt werden sollen, Zusätzlich zum Protokollieren. display_errors sollte NIEMALS auf einem Live-Produktionsserver eingeschaltet werden – diese Anweisung ist speziell für die Ausgabe an den Benutzer und hat keine Auswirkung auf die Protokollierung. php.net/manual/en/…

    – Aaron Wallentine

    9. März 2018 um 22:51 Uhr


Wie protokolliere ich Fehler und Warnungen in einer Datei
T.Todua

Fügen Sie diesen Code in die Datei ein .htaccess (Alternativ zu file php.ini oder der ini_set Funktion):

<IfModule mod_php5.c>
php_flag log_errors on 
php_value error_log ./path_to_MY_PHP_ERRORS.log
# php_flag display_errors on 
</IfModule>
  • wie kommentiert: das ist für Apache-Typ Server, und nicht für Nginx oder andere.

Das ist meine persönliche Kurzfunktion

# logging
/*
[2017-03-20 3:35:43] [INFO] [file.php] Here we are
[2017-03-20 3:35:43] [ERROR] [file.php] Not good
[2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty

mylog ('hallo') -> INFO
mylog ('fail', 'e') -> ERROR
mylog ('next', 'd') -> DEBUG
mylog ('next', 'd', 'debug.log') -> DEBUG file debug.log
*/
function mylog($text, $level="i", $file="logs") {
    switch (strtolower($level)) {
        case 'e':
        case 'error':
            $level="ERROR";
            break;
        case 'i':
        case 'info':
            $level="INFO";
            break;
        case 'd':
        case 'debug':
            $level="DEBUG";
            break;
        default:
            $level="INFO";
    }
    error_log(date("[Y-m-d H:i:s]")."\t[".$level."]\t[".basename(__FILE__)."]\t".$text."\n", 3, $file);
}

  • Eine Erklärung wäre angebracht. ZB, was ist die Idee/der Kern? Bitte antworten Sie, indem Sie Ihre Antwort bearbeiten (ändern), nicht hier in den Kommentaren (ohne “Bearbeiten:”, “Aktualisieren:” oder ähnliches – die Antwort sollte so aussehen, als wäre sie heute geschrieben).

    – Peter Mortensen

    15. September 2021 um 23:23 Uhr

1646936650 180 Wie protokolliere ich Fehler und Warnungen in einer Datei
Amal Murali

Werfen Sie einen Blick auf die log_errors Konfigurationsoption in php.ini. Es scheint genau das zu tun, was Sie wollen. Ich denke, du kannst die verwenden error_log Möglichkeit, auch Ihre eigene Protokolldatei festzulegen.

Wenn das log_errors Richtlinie eingestellt ist Onwerden alle von PHP gemeldeten Fehler im Serverprotokoll oder in der mit angegebenen Datei protokolliert error_log. Sie können diese Optionen mit einstellen ini_set auch wenn es sein muss.

(Bitte beachte, dass display_errors sollte in php.ini deaktiviert werden, wenn diese Option aktiviert ist)

  • Eine Erklärung wäre angebracht. ZB, was ist die Idee/der Kern? Bitte antworten Sie, indem Sie Ihre Antwort bearbeiten (ändern), nicht hier in den Kommentaren (ohne “Bearbeiten:”, “Aktualisieren:” oder ähnliches – die Antwort sollte so aussehen, als wäre sie heute geschrieben).

    – Peter Mortensen

    15. September 2021 um 23:23 Uhr

1646936650 365 Wie protokolliere ich Fehler und Warnungen in einer Datei
Stephan

Außerdem benötigen Sie die Direktive “AllowOverride Options”, damit dies funktioniert. (Apache 2.2.15)

988670cookie-checkWie protokolliere ich Fehler und Warnungen in einer Datei?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy