【问题标题】:Which method do I better use, when I need error reporting display control?当我需要报错显示控件时,我最好使用哪种方法?
【发布时间】:2009-06-12 01:57:08
【问题描述】:

我要管理错误信息显示控件,

我用谷歌搜索了一段时间,

我发现有几种方法 去做吧。

我必须选择哪种方法?

我想做的事情就是这样

我不想 PHP
出现任何 用户显示错误,

在生产服务器上。

【问题讨论】:

    标签: php error-handling custom-errors


    【解决方案1】:

    最好将所有错误记录到一个文件中:

    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
    ini_set('error_log', '/tmp/php_errors.log');
    

    在 unix 上,您可以使用以下命令查看错误:

    bash$ tail -f /tmp/php_errors.log
    

    或者您可以在文本编辑器中打开日志文件。

    此设置也可以在生产服务器上使用,您可以定期下载 php_errors.log 文件以查看是否有任何错误。

    【讨论】:

    • 此解决方案是否记录所有错误但不显示到用户的监视器?
    • "display_errors" 函数只是控制是否要监控显示错误?而error_reporting函数控制是否记录错误?
    • 多年来我一直对它们之间的差异感到困惑。
    • 是的,php_errors.log 文件应该在 public_html 文件夹之外,或者至少在不能直接下载的地方。所有错误都将进入日志文件,但用户将看不到任何错误。 error_reporting() 控制将显示哪些类型的错误。
    【解决方案2】:

    使用error_reporting()

    在生产中,通过执行以下操作禁用错误:

    error_reporting(0);
    

    像这样报告开发时的运行时错误:

    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    

    并像这样报告所有错误:

    error_reporting(E_ALL);
    

    请参阅上面的链接以获取带有详细说明的 report_level 常量的完整列表以及手册页:

    http://us.php.net/manual/en/function.error-reporting.php

    【讨论】:

    • “运行时错误”和“所有错误”之间是否存在差异?
    • 这个解决方案看起来很简单,所以最适合我。
    • @Jonathanitou 这实际上是最灾难性的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2021-04-02
    • 2011-02-26
    相关资源
    最近更新 更多