5

Mage::log 对我来说很好,除了打印数组信息。

例如,如果我有一个数组 $result,然后执行以下操作:

Mage::log('[CartController: getDeliverLeadTime(country): ' . $result . ')');

在我的 system.log 文件中,我刚刚得到: [CartController: getDeliverLeadTime~(country): Array )

*我希望它像普通的 print_r 那样打印数组的实际结构和内容。*

如果我对数组执行 var_dump,我什么也得不到,即 [CartController: getDeliverLeadTime~(country): )。

如果我做一个 print_r 我得到: [CartController: getDeliverLeadTime~(country): 1)

这对我来说是一个障碍,因为我无法调试我需要的东西 - 如果有人能阐明如何让 Magento 实际打印日志中的数组内容,将不胜感激。

我在 alanstorm.com 上读到它意味着默认情况下会发生,但它不适合我。

谢谢保罗

4

3 回答 3

14

您必须将print_r作为字符串返回,所以print_r($result, true)应该这样做。

于 2012-06-12T09:30:32.700 回答
2

试试看

$array = array('ID' => 1, 'NAME' => 'Amaresh', 'EMAIL' => 'example@gmail.com');

Mage::log($array);

输出

2015-09-18T06:44:24+00:00 DEBUG (7): Array
(
    [ID] => 1
    [NAME] => Amaresh
    [EMAIL] => example@gmail.com
)
于 2015-09-18T06:46:39.070 回答
0

看看代码下面的代码,

$collection = Mage::getModel('catalog/product')->getCollection()
Mage::log("Query product: ".print_r($collection->getData(), true),null,'test.log');

检查文件夹test.log中的var/log文件。

于 2013-01-30T09:17:16.390 回答