Magento Mage :: log()会导致白屏

时间:2012-02-07 10:52:03

标签: php magento

当使用Magentos日志工具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 个答案:

答案 0 :(得分:10)

Mage::log的工作方式与print_r非常相似,也会打印私有和受保护的值,其中包含大量资源详细信息。您可以使用目的Varien_Object::debug方法来避免这些。

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

debug也是首选,因为它检测的递归并非所有版本的PHP都可以。

答案 1 :(得分:1)

我想每个人都会遇到这种情况。

尽量不要记录大对象。

如果您需要,我建议您使用die。

例如像这样

    $object = ...;
    die($object);
or
    die('pre html tag'.print_r($object,true).'pre html tag');