2010-08-20 7 views

Antwort

6

Schauen Sie sich die Konfigurationsoption log_errors in php.ini an. Es scheint genau das zu tun, was du willst. Ich denke, Sie können die Option error_log verwenden, um Ihre eigene Logging-Datei zu setzen.

Wenn die log_errors Richtlinie On gesetzt ist, Fehler von PHP berichtet würde den Server-Log oder mit error_log angegebenen Datei protokolliert werden. Sie können diese Optionen auch mit ini_set einstellen, wenn Sie müssen.

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

+1

Warum sollte 'display_errors' wenn Sie deaktiviert werden Aktiviere 'log_fehler'? Meiner Meinung nach macht das keinen Sinn. :) –

+5

Da der Inhalt der Fehler auf einem Produktionsserver nicht öffentlich ausgegeben werden muss, insbesondere wenn der Fehlertext diskret in einer Datei protokolliert wird. – Shabbyrobe

+3

Anzeigefehler sollten auf dem Produktionsserver immer deaktiviert sein. Nicht, wenn die Fehlerprotokollierung an anderer Stelle, aber immer konfiguriert ist. Fehler werden standardmäßig im Apache-Fehlerprotokoll protokolliert, das ist oft genug. – Pihhan

293

Verwenden Sie den folgenden Code ein:

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

dann die Datei sehen:

tail -f /tmp/php-error.log 

Oder aktualisieren Sie php.ini wie in this blog entry von 2008 beschrieben.

+38

'ini_set' funktioniert nur, wenn dieser Code ausgeführt wird. Nicht nützlich für Code, der * Parse Fehler * hat, weil der Fehler * vor * der Code ausgeführt wird. Schreiben Sie diese Änderungen stattdessen in die php.ini. – hakre

+8

Wenn Sie die php.ini nicht bearbeiten können, sollten Sie diese in der .htaccess-Datei hinzufügen können: 'php_flag log_errors on php_value error_log/home/pfad/public_html/domain/PHP_errors.log'. Siehe http://perishablepress.com/how-to-enable-php-error-logging-via-htaccess/ – Matthieu

+0

Ich habe eine Frage, wie Sie die error.log-Datei erhalten, um stattdessen in meinem htdocs-Ordner erstellt zu werden? – Tommy

15

diesen Code in .htaccess hinzufügen (falls Sie haben Zugriff auf php.ini nicht)

<IfModule mod_php5.c> 
php_flag log_errors on 
php_value error_log ./path_to_MY_PHP_ERRORS.log 
</IfModule> 

P. S. Dies ist für Apache-Server.

+6

Dies ist jedoch sehr spezifisch mit dem PHP-Modul von Apache zu tun. – SacredSkull

0

Darüber hinaus müssen Sie die Direktive "AllowOverride Options" verwenden, damit dies funktioniert. (Apache 2.2.15)

2

, dass meine kurze Funktion ist

# 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); 
} 
5

einfach diese Codes setzen in oben auf Ihrer PHP/Index-Datei:

error_reporting(E_ALL); // Error engine 

ini_set('display_errors', TRUE); // Error display 

ini_set('log_errors', TRUE); // Error logging 

ini_set('error_log', 'your/path/to/errors.log'); // Logging file 

ini_set('log_errors_max_len', 1024); // Logging file size 
+0

Das nur, wenn Sie * auch * wollen, dass alle Fehler in der Ausgabe und/oder im Browser angezeigt werden, * zusätzlich * zur Protokollierung. 'display_errors' sollte NIEMALS auf einem Live-Produktionsserver aktiviert sein - diese Anweisung dient speziell zur Ausgabe an den Benutzer und hat keine Auswirkungen auf die Protokollierung. http://www.php.net/manual/en/errorfunc.configuration.php#ini.display_errors –

Verwandte Themen