Magento:直接输出任何错误或通知

时间:2013-03-30 10:42:29

标签: debugging magento magento-1.7

在我的模块代码中,我回应了一个未定义的变量:

echo $doesnotexist;

我在 index.php

中完成了以下操作
error_reporting(E_ALL);
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

这个组合显示了一个"哎呀,我们的坏..."执行代码时的404类型页面。在 exception.log 中有一个通知(" 未定义变量:doesnotexist ")以及堆栈跟踪。

如果我删除 index.php 中的部分说明:

error_reporting(E_ALL);
//Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

前端显示页面通常没有任何错误指示,错误记录到 system.log

现在我的问题是:有没有办法将这些通知/错误直接输出到前端?或者我是否应该在编码时始终打开 system.log exception.log 的副本?

2 个答案:

答案 0 :(得分:1)

Magento通常使用zend异常/错误处理类来处理错误和异常。因此,对于日志中记录了magento代码发送异常的错误。 但如果错误无法通过magento捕获,那么它将打印在您的页面上。

您可以在2个案例中获得前端错误:

  1. 如果您正在创建自己的magento扩展程序,那么您可以抛出错误,以便它可以显示在magento页面上
  2. 如果您正在处理.phtml文件并导致致命错误

答案 1 :(得分:0)

  1. 作为安全问题,不应在前端显示错误和警告。

  2. 如果有异常或你做了一些系统日志,你可以从system.log或exception.log获取它。

  3. 对于PHP错误,您应该参考在站点级别生成的错误日志文件。

  4. 法师:: setIsDeveloperMode(真);只有在包含Mage.php后才能使用,所以粘贴完整的index.php代码