В журнале ошибок 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 файле.