【问题标题】:use echo or Die for debugging and logging使用 echo 或 Die 进行调试和记录
【发布时间】:2014-01-11 18:56:10
【问题描述】:

问题说明了一切。我在 STDOUT 上记录一些东西。我应该使用 echo 显示还是使用Die()。据我所知,如果我使用 die() 进行正常打印,如die('Entered in For loop'),它会退出程序。 也可以登录到文件或mysql吗?

【问题讨论】:

  • 在程序遇到意外错误时进行记录总是一个好主意。这样您就可以从中吸取教训,并希望将来防止它再次发生。
  • file_put_contents("someapp.log", "LOG EVENT\n", FILE_APPEND);
  • die() 输出将被发送到客户端。一般来说,您不希望将调试信息发送到客户端,因为它会泄露您系统的内部细节。对于用户,您会说“糟糕,发生了什么事”。对于内部日志记录,您需要提供更多详细信息以帮助追踪问题。

标签: php apache logging echo die


【解决方案1】:
function dd($obj) {
    $args = func_get_args();
    $n = count($args);
    for($i = 0; $i < $n; $i++) {
        error_log(print_r($args[$i], true));
    }
}

【讨论】:

    【解决方案2】:

    对于调试,我更喜欢var_dump()。如果您在开发环境中安装 Xdebug (http://xdebug.org/),您将从 var_dump 中获得更多。

    当我想杀死一个正在调试的脚本时,我会死掉它,就像在die(var_dump()) 中一样。

    对于日志,请查看 PHP 的 error_log() (http://www.php.net/manual/en/function.error-log.php) 函数或诸如 monolog (https://github.com/Seldaek/monolog) 之类的日志库。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 2015-01-11
      • 2019-08-25
      • 1970-01-01
      • 2023-03-09
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      相关资源
      最近更新 更多