Magento's Mage :: log () вызывает белый экран - PullRequest
4 голосов
/ 07 февраля 2012

При использовании Magentos log средство Mage :: log () иногда вызывает белый экран. Сообщения об ошибках не выводятся ни на экран, ни в какие-либо файлы журналов (var / log / system.log, var / log / exception.log)

Кажется, это происходит только тогда, когда я пытаюсь зарегистрировать очень большой объект. например, когда я пытаюсь это

Mage::log(Mage::helper('catalog/category')->getStoreCategories());

внутри контроллера блока это вызывает белый экран.
то же самое происходит, когда я пытаюсь зарегистрировать текущий продукт в app/design/frontend/enterprise/default/template/catalog/product/view/media.phtml используя

Mage::log($_product);

Обычно Mage :: log () работает нормально и записывает все в файл system.log.
Мне было интересно, если это случилось с кем-то еще или у кого-нибудь есть идея, почему это происходит?

Ответы [ 2 ]

10 голосов
/ 07 февраля 2012

Mage::log работает так же, как print_r, печатаются частные и защищенные значения, которые включают подробные сведения о ресурсе. Вы можете избежать этого, используя метод Varien_Object::debug предназначения.

Mage::log($_product->debug());

debug также предпочтительнее, потому что он обнаруживает рекурсию, что не все версии PHP делают.

1 голос
/ 07 февраля 2012

Я думаю, это случается со всеми.

Старайтесь не регистрировать большие объекты.

В случае необходимости я бы посоветовал вам использовать die.

, например, вот так

    $object = ...;
    die($object);
or
    die('pre html tag'.print_r($object,true).'pre html tag');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...