WP_DISABLE_FATAL_ERROR_HANDLER VS WP_DEBUG?使用什么以及何时使用来查看错误?

时间:2019-06-10 作者:Milan

引入后WP_DISABLE_FATAL_ERROR_HANDLER 我对现有的感到困惑WP_DEBUG 特色现在这里有什么区别?

我的意思是,如果我使用WP_DISABLE_FATAL_ERROR_HANDLER 那是什么意思WP_DEBUG 现在

虽然我浏览了WordPress上的一些门票,但我不知道WP_DEBUG 现在

WordPress是否停止使用WP_DEBUG ?
引入新常数后WP_DISABLE_FATAL_ERROR_HANDLER 我再也看不到错误了define("WP_DEBUG",true).<我知道display_errors 在php中设置。ini,因此不需要此解决方案:)

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这些常数做不同的事情。

WP_DISABLE_FATAL_ERROR_HANDLER 常量用于禁用new fatal error recovery feature 在WordPress 5.2中介绍。这项新功能确保插件的致命错误不会将您锁定在网站之外,并且前端用户会收到某种“技术困难”信息,而不是白屏

  • WP_DEBUG 常量用于启用调试模式,该模式在前端显示所有PHP错误消息和警告,以及特定于WordPress的消息,如弃用通知
  • 所以你可以看到它们并没有真正的联系。致命错误恢复功能旨在用于生产,因此不会向用户显示白色屏幕和PHP错误消息。而调试模式旨在在开发环境中用于在开发主题或插件时调试问题。

    在生产环境(因此是活动站点)中,两个常量都不应启用。应启用致命错误恢复,并禁用调试模式。

    在开发环境中,您可能不需要致命错误恢复,并且可能希望启用调试模式。

    如果出于某种原因需要在实时站点上调试问题,则可能需要启用调试模式,但在这种情况下,您应该WP_DEBUG_DISPLAY 设置为false, 和WP_DEBUG_LOG 设置为true, 这样,您就可以调试日志文件中的错误消息,而不是将其公开给用户。

    所以在development environment 您可能想要:

    define( \'WP_DISABLE_FATAL_ERROR_HANDLER\', true );
    define( \'WP_DEBUG\', true );
    
    在一个production environment 您可能想要(这与不手动定义它们相同):

    define( \'WP_DISABLE_FATAL_ERROR_HANDLER\', false );
    define( \'WP_DEBUG\', false );
    
    如果你需要的话debug a live site 您可以使用:

    define( \'WP_DISABLE_FATAL_ERROR_HANDLER\', false );
    define( \'WP_DEBUG\', true );
    define( \'WP_DEBUG_DISPLAY\', false );
    define( \'WP_DEBUG_LOG\', true );
    

    SO网友:dylzee

    雅各布·皮蒂(JacobPeattie)给出了非常详细的回答,我肯定会加1。我还想补充一点,您可以使用以下ini\\u set命令,还可以指定调试日志位置。

    @ini_set(\'log_errors\',\'On\'); // This is essentialy what (\'WP_DEBUG\', true) does.
    @ini_set(\'display_errors\',\'Off\'); // Avoid the ugly display of errors on live sites.
    @ini_set(\'error_log\',\'/home/domain.com/logs/php_error.log\'); // Set your log path.
    

    相关推荐

    为什么dbDelta()不能捕获MysqlErrors?

    据我所见,dbDelta() 用于抑制在其操作过程中发生的数据库错误。一般来说,情况似乎是这样,但New Relic仍在报告函数中的MysqlErrors。准确的错误消息格式如下:MysqlError: Table \'xxx.wp_yyy_posts\' doesn\'t exist 发件人dbDelta() 在里面/wp-admin/includes/upgrade.php, 我们有:// Fetch the table column structure from the database&