当使用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文件。
我想知道这是否发生在其他人身上,或者是否有人知道为什么会这样?
答案 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');