Frage

Wie der Titel schon sagt, habe ich die maximale Länge für die php-error-log, aber es scheint weiter zu wachsen, viel viel größer als 1024.Ich bin mit der richtigen php.ini, ich habe apache neu gestartet, etc.Die Berechtigungen auf den php-log 666.

War es hilfreich?

Lösung

Wie für PHP typisch ist, ist es nicht wirklich offensichtlich aus dem Namen der Konfigurationseinstellung oder auch die

Andere Tipps

Verifiziert Pascal ' s Erster Gedanke:

log_errors_max_len integer

Die maximale Länge der log_errors in bytes.Im error_log Informationen über die Quelle Hinzugefügt.Die Standard - 1024 und 0 erlaubt das nicht maximale Länge an alle. Diese Länge ist angewendet protokolliert Fehler, angezeigt Fehler und auch $php_errormsg. Wenn eine ganze Zahl, wird der Wert gemessen in bytes.Kurznotation, wie beschrieben in dieser FAQ, ist vielleicht auch verwendet.

Was das Handbuch nicht Staat ist, dass log_errors_max_len Bezug nimmt nur , um die " Körper“der Fehlermeldung. Dies bedeutet, dass eine einzige Zeile Fehler wird noch größer sein ist als die Länge, die Sie hier einstellen.

Um zu demonstrieren, führen Sie diesen Code mit log_errors_max_len=0 (0 Mittel unbegrenzt) und log_errors=1 :

<?php
// Set your server to these settings:
// error_reporting=-1 
// date.timezone=utc ;to suppress the error message "It is not safe to rely on the system's timezone settings."...
echo$msg1; echo$msg2;

Die Bytes gesendet error_log werden:

[15-Jul-2015 01:23:45 utc] PHP Notice:  Undefined variable: msg1 in C:\index.php on line 5
[15-Jul-2015 01:23:45 utc] PHP Notice:  Undefined variable: msg2 in C:\index.php on line 5
‏

Als nächstes testen Sie den gleichen Code mit log_errors_max_len=4 und log_errors=1. (Denken Sie daran, den Server neu zu starten.) error_log wird nun sein:

[15-Jul-2015 01:23:45 utc] PHP Notice:  Unde in C:\index.php on line 5
[15-Jul-2015 01:23:45 utc] PHP Notice:  Unde in C:\index.php on line 5
‏

(Beachten Sie, dass Ihre Fehlermeldung mit „[15-Jul-2015 01:23:45 utc] PHP Notice:“ vorangestellt wird und die beigefügten mit „in C:\index.php on line 1“, was zu einer Linie, die länger als das, was durch log_errors_max_len eingestellt ist.)

Dieses Problem tritt nicht nur mit error_log, sondern auch mit der Server-Ausgabe an den Client gesendet. Um zu demonstrieren, führen Sie den gleichen Code oben mit log_errors_max_len=4, display_errors=1 , html_errors=0 , error_prepend_string="PPPP" und error_append_string="AAAA" . Die Ausgabe an den Client gesendet wird:

PPPP
Notice: Unde in C:\index.php on line 5
AAAAPPPP
Notice: Unde in C:\index.php on line 5
AAAA

Jetzt mit dem gleichen Code log_errors_max_len=4 läuft, display_errors=1, html_errors=1 , error_prepend_string="PPPP" und error_append_string="AAAA". (. error_prepend_string und error_append_string gelten nur für angezeigte Fehler, keine Fehler protokolliert) Die Ausgabe an den Client gesendet wird:

PPPP<br />
<b>Notice</b>:  Unde in <b>C:\index.php</b> on line <b>5</b><br />
AAAAPPPP<br />
<b>Notice</b>:  Unde in <b>C:\index.php</b> on line <b>5</b><br />
AAAA

Beachten Sie auch, dass die oben genannten Tests sogar die gleichen Ergebnisse liefern würde, wenn Sie ignore_repeated_errors=0 . Dies zeigt, dass „wiederholter Fehler“ wird als vor die Fehlermeldungen abgeschnitten werden.

(Ihre Ergebnisse unterscheiden von dem verwendeten SAPI abhängig. Vor Tests werden durchgeführt, mit PHP-5.6.7-Win32-VC11-x86-CLI auf Win 8.1.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top