如何在 WordPress 中使用 error_log()?

How can I use error_log() with WordPress?

提问人:Michael Lynch 提问时间:6/20/2014 最后编辑:MaximeMichael Lynch 更新时间:11/17/2023 访问量:50141

问:

我正在尝试在我正在构建的自定义 WordPress 插件中使用,但由于某种原因,我不能。error_log()

当我使用我的网站时,它只是中断,但我没有看到任何错误。error_log()debug.log

我在我的文件中设置了调试,如下所示:wp_config.php

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

Stranegly,如果我在我的主题中使用,网站不会中断,但也不会输出任何内容。error_log()debug.log

我需要做什么才能在我的 WordPress 插件和主题中使用?error_log()

我正在使用 WordPress 3.9.1。

php wordpress 错误记录

评论


答:

19赞 Michael Lynch 6/20/2014 #1

根据法典,默认情况下应设置为 true但情况似乎并非如此。WP_DEBUG_DISPLAY

添加到修复错误日志记录。define('WP_DEBUG_DISPLAY', true);wp_config.php

设置为从浏览器中删除错误,但允许它们在日志中输出。WP_DEBUG_DISPLAYfalse

Wordpress 似乎需要将错误输出到日志中,无论您将其设置为 BE 还是 .define('WP_DEBUG_DISPLAY');truefalse

2赞 Arun Basil Lal 11/19/2017 #2

我有同样的问题。对我来说,注释掉这句话很有帮助。

define( 'WP_DEBUG_LOG', true );
26赞 Orlandster 4/4/2019 #3

更新 2019


启用调试

只需将以下代码添加到以下代码即可启用调试:wp-config.php

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

您的文件夹中将生成一个文件。debug.logwp-content


在生产环境中的使用

如果要在不在前端打印错误的情况下记录错误,请添加以下行:

define( 'WP_DEBUG_DISPLAY', false );

这在生产环境中非常有用,因为页面访问者将无法看到您的日志。


打印错误

现在,您可以使用以下函数写入日志:error_log

error_log( 'Hello World!' );

或者使用以下方法漂亮地打印您的输出:print_r

error_log( print_r( 'Hello World!', true ) );

专业提示:如果您使用的是 bash,则可以使用tail -f wp-content/debug.log

1赞 Muhammad Shafaf 11/17/2023 #4

您可以启用 WordPress 日志记录,将其添加到:wp-config.php

 // Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

您可以使用 PHP 提供的 error_log() 函数写入日志文件。

此外,还可以在文件中添加以下代码片段。这对于调试您的 WordPress 网站非常有用。wp-config.php

function write_log($log) {
    if (true === WP_DEBUG) {
        if (is_array($log) || is_object($log)) {
            error_log(print_r($log, true));
        } else {
            error_log($log);
        }
    }
}

write_log('THIS IS THE START OF MY CUSTOM DEBUG');
//i can log data like objects
write_log($whatever_you_want_to_log);