Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Журнал ошибок PHP и символы новой строки

Автор вопроса: Chris BurgessОтветов: 2

Каков параметр конфигурации PHP, который разрешает или предотвращает экранирование новых строк в выводе отладки?

В двух разных установках (ноутбук разработчика с MAMP/OSX и сервер разработчика с Debian) я вижу разные результаты в журналах ошибок при отладке.

error_log(print_r(array(1,2,4),1));

В Debian это отображается в /var/log/apache2/error.log как

[Thu Jul 30 11:32:34 2009] [error] [client 118.93.246.104] Array\n(\n    [0] => 1\n    [1] => 2\n    [2] => 4\n)\n, referer: http://dev.example.org/

В OSX это отображается в /Applications/MAMP/logs/php_error_log как

[30-Jul-2009 11:34:00] Array
(
    [0] => 1
    [1] => 2
    [2] => 4
)

Я предпочитаю способ отладки MAMP (кроме перемещения файлов журналов в каталог /Applications).

Спасибо!

debuggingphpapache

Ответы

Ответ 1 · рейтинг 15 · hobodave

Крис, вы должны иметь возможность изменить директиву error_log в вашем php.ini в Debian, чтобы она указывала на файл. Если это не определено, он будет проходить через системный журнал, который не поддерживает несколько строк.

Подробности:

Функция error_log

Директива error_log

Ответ 2 · рейтинг 2 · regexp

Проблема возникает, когда процесс Apache не может записывать в файл error_log, поэтому вместо этого в файл записывается системный журнал. Системный журнал портит разрывы строк.

Так что просто сделайте:

chmod 777 error.log

Это должно решить вашу проблему.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы