题
我想记录一些变量,例如 $mageRunCode
在命中之前:
Mage::run($mageRunCode, $mageRunType);
看起来 Mage::log
而且,即使是Zend Logging设施似乎也没有在此处注销到任意文件输出。一个人将如何正确进行?
解决方案
您必须在mage :: run之前这样做的任何具体原因在index.php中调用吗?您担心他们会改变吗?
尝试在此点登录将需要您调整核心文件(index.php),这不是很好的做法。
一些流程:
在Mage :: Run您得到:
self::$_app->run(array(
'scope_code' => $code,
'scope_type' => $type,
'options' => $options,
));
此时,您感兴趣的变量没有变化。
在mage_core_model_app ::运行中,您可以获得此代码行:
Mage::register('application_params', $params);
因此,Magento Internals很好地保存了您在注册表中使用的参数。
要记录它们,您可以使用事件“ controller_front_init_before”,这是最早(可用的)事件之一。
在这种情况下,您可以提取保存的参数并记录它们。
$params = mage::registry('application_params');
要注意的是,这将在您的网站性能上放置一个巨大的开销,因为它将登录每个请求。好奇您为什么需要记录它们?
其他提示
我假设您正在尝试在开发人员模式/本地环境中登录东西,并且想解决。
如果要在Magento中将某些内容记录到自定义日志文件,则可以使用
Mage::log($myVariable, null, 'myVariable.log');
为此,您需要在管理后端启用日志记录。这将记录到 magento_root/var/log/myVariable.log
提示:您还可以使用整个回溯(对于其他深层铺设的代码)打印整个回溯
Mage::log(Varien_Debug::backtrace(true, true), null, 'backtrace.log');
打印整个回溯的优点是,您可以看到呼叫所遵循的确切方法/XML流以达到执行点,即PHP代码中的任何位置。当然,这将结果输出到 magento_root/var/log/backtrace.log