2010-01-20 7 views
5

Ich versuche, keine Fehler zu protokollieren, die in eine Fehlerprotokolldatei auf meinem Server geschrieben werden. Ich habe versucht, (an der Spitze meines index.php):Wie man PHP daran hindert, PHP zu protokollieren. Beachten Sie die Fehler

ini_set('display_errors', 0); 
error_reporting(E_ALL^E_NOTICE); 

Aber ich bin immer noch PHP Hinweis Fehler in der Fehlerprotokolldatei.

Ich bin in einer freigegebenen Hosting-Umgebung, so dass ich meine php.ini Datei nicht bearbeiten kann.

phpinfo() sagt mir:

- Version 5.2.12 
- error_reporting 6143 
- error_log error_log 
- safe_mode Off 
+3

Wie wäre es, die Ursachen der Anschläge statt die Augen schließen, um die Fixierung? Sie kommen nicht ohne Grund vor. – Gumbo

Antwort

0

Sie die Fehlerberichtsebene auf etwas anderen

error_reporting ändern (E_ERROR | E_WARNING | E_PARSE);

siehe http://www.php.net/manual/en/function.error-reporting.php für weitere Informationen

+0

Ich habe das auch versucht, einschließlich Ihrer Variation - immer noch eingeloggt. Gibt es einen Weg in der php.ini, damit ini_set() und error_reporting() NICHT funktionieren? –

2

Try tun:

error_reporting(E_ALL & ~E_NOTICE); 

Die error_reporting() Richtlinie wird immer funktioniert (PHP_INI_ALL).

Sind Sie sicher, dass Sie keine Bibliothek einschließen, die Ihre Fehlermeldungsstufe ändert?


error_reporting(0); tun und dann das tun:

var_dump(error_reporting()); 

Was ist der Ausgang?

+0

Ich habe das gesamte Projekt nach "error_reporting" durchsucht und es zeigt nur einen Treffer in der index.php-Datei, und das ist die error_reporting, die ich hinzugefügt habe. Es gibt auch keine Vorkommen von "set_error_handler". –

+0

@ Magenta: Nein 'ini_set()' entweder? –

+1

Var_dump Ausgänge int (6135), das ist E_ALL & ~ E_NOTICE –

8

Wenn Sie sich auf einem Apache-Server befinden, versuchen Sie, den Wert in einer .htaccess-Datei festzulegen. Das allgemeine Format ist:

php_flag log_errors on 
php_value error_log /path/to/error.log 
php_value error_reporting integer 

wo integer den Wert, den Sie vom Laufen so etwas wie erhalten:

echo E_ALL & ~E_NOTICE; // prints 30711 

Mehr Infos hier:

http://perishablepress.com/press/2008/01/14/advanced-php-error-handling-via-htaccess/

+0

Das scheint auch nicht zu funktionieren. –

+0

Vorsicht! Der Code (wie 30711) kann auf verschiedenen PHP-Versionen abweichen. Es ist am besten, das Echo auf dem Server selbst zu überprüfen, wo Sie die config – spiritoo

1

Sind Sie Bekanntmachung der immer oder " USER "Notice's in Ihrem Protokoll?

verwenden beide zu deaktivieren:

error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE); 
+0

Zeigt im Protokoll als "PHP Notice" –

+0

Ich glaube, beide sind als "PHP Notice" protokolliert. Sie könnten den phpcode nach "trigger_error" oder E_USER_NOTICE suchen. –

Verwandte Themen