Как вы регистрируете ошибки php с CakePHP, когда отладка равна 0? - PullRequest
3 голосов
/ 05 февраля 2011

Я хотел бы регистрировать ошибки PHP на сайте CakePHP с отладкой = 0. Однако, даже если я включаю журнал ошибок, например:

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
log_errors = On

, он не регистрирует ошибки.

Проблема в том, что даже при ошибке синтаксического анализа, которая должна приводить к неполной загрузке среды CakePHP (я думаю), она все равно блокирует запись ошибки.Если я установлю отладку на 3, она будет записана в файл без проблем.

Я использую CakePHP 1.2.Я знаю, что в 1.3 это, очевидно, стало проще, но я не готов к обновлению.

Ответы [ 5 ]

2 голосов
/ 09 февраля 2011

Другой способ отслеживать и регистрировать ошибки - использовать плагин Referee , поскольку он позволяет произвольно регистрировать и фиксировать все (, включая фатальные ) ошибки, возникающие во время exection.

0 голосов
/ 14 марта 2014

В CakePHP 1.2-1.3 есть ошибка, при которой ошибки / предупреждения PHP подавляются в коде представления, когда отладка отключена.

В файле торт / libs / view / view.php в строке # 664 он читает

@include ($___viewFn);

Но директива @ подавляет ошибки для всего обработчика представления. Вместо этого должно быть:

include ($___viewFn);

Что позволяет генерировать ошибки / предупреждения PHP в коде представления и впоследствии регистрироваться. Как только я изменил это и получил правильные настройки ведения журнала в core.php, я наконец смог получить полные журналы в рабочем состоянии.

0 голосов
/ 24 марта 2012

Иногда причина может быть совсем другой. Например, используемая вами структура может иметь свой собственный внутренний модуль кэширования, который сохраняет значение в буфере, пока вы продолжаете пытаться. Проверьте, создаются ли дубликаты или нет. Обычно эти файлы называются filename.ext.r123 и т. Д.

0 голосов
/ 05 февраля 2011

PHP должен регистрировать ошибки в своем собственном лог-файле, независимо от того, что делает CakePhp.

Найдите файл /etc/php.ini (или где бы вы ни жили) и найдите error_log Это покажет вам, где находится журнал PHP в вашей системе.

0 голосов
/ 05 февраля 2011

define ('LOG_ERROR', 2);в core.php

...