В журнале ошибок PHP добавлены дополнительные каретки?
Я использую WAMP, и в моем файле php.ini я:
error_log = "d:/php_error.log"
Когда я открываю этот файл, я вижу:
[26-Jun-2013 05:35:57 UTC] PHP Warning: Division by zero in D:\....
[26-Jun-2013 05:35:57 UTC] PHP Stack trace:
[26-Jun-2013 05:35:57 UTC] PHP 1. {main}() D:\....
[26-Jun-2013 05:35:57 UTC] PHP 2. Zend_Application->run()...
etc
Проблема в том, что есть дополнительные возвраты каретки. То есть Я ожидаю скорее иметь это:
[26-Jun-2013 05:35:57 UTC] PHP Warning: Division by zero in D:\....
[26-Jun-2013 05:35:57 UTC] PHP Stack trace:
[26-Jun-2013 05:35:57 UTC] PHP 1. {main}() D:\....
[26-Jun-2013 05:35:57 UTC] PHP 2. Zend_Application->run()...
etc
Что может быть причиной этого?
UPDATE
Я изменил "error_append_string" и "error_prepend_string" на "". Я также проверил и записи после строки:
[LINE]CR
CRLF
[LINE]CR
etc
т.е. Возврат каретки и символы LineFeed...
Ответы
Ответ 1
Это может иметь какое-то отношение к syslog. Поэтому PHP добавляет CR
, а затем в syslog Windows входит и помещает в него дополнительный CRLF
при обработке запроса log "line\n"
.
См. связанные вопросы, когда у пользователей возникли другие проблемы с новой строкой и error_log в других операционных системах:
PHP error_log выводит строки разрывов как литерал "\n" строки на Mac OSX
Журнал ошибок PHP и символы новой строки
В частности, это может произойти, когда пользователь, которому работает Apache, не имеет разрешения на запись в файл, или директива error_log
в вашем php.ini не установлена (или определена как syslog
). Подробнее здесь: http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log
Что касается самого файла журнала, вы можете попытаться поэкспериментировать с ним, предоставив ему 777-разрешение или создав файл самостоятельно, вместо того, чтобы позволить системе создать его (или наоборот). Некоторые пользователи сообщают о различных проблемах/решениях с каждой из этих настроек.
Ответ 2
Не устанавливайте error_prepend_string
и error_append_string
, а скорее отключите их полностью, комментируя их (;):
;error_prepend_string
и
;error_append_string
Ответ 3
Вы можете проверить значения
error_prepend_string
и
error_append_string
в вашем .ini файле.