debugging 如何在WordPress中使用error_log()?

uubf1zoe  于 12个月前  发布在  WordPress
关注(0)|答案(4)|浏览(151)

我试图使用error_log()在一个自定义的WordPress插件,我正在建设,但由于某种原因,我不能。
当我使用error_log()时,我的网站就崩溃了,但我在debug.log中没有看到任何错误。
我在我的wp_config.php文件中安装调试如下:

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

字符串
奇怪的是,如果我在我的主题中使用error_log(),网站不会中断,但也没有输出到debug.log
我需要做什么才能在我的WordPress插件和主题中使用error_log()
我使用WordPress 3.9.1。

bzzcjhmw

bzzcjhmw1#

更新2019

启用缓存

您可以简单地通过将以下代码添加到wp-config.php来启用调试:

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

字符串
在您的wp-content文件夹中将生成一个debug.log文件。

生产环境使用

如果您想记录错误而不将其打印在前端,请添加以下行:

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观察日志

5gfr0r5j

5gfr0r5j2#

根据Codex,WP_DEBUG_DISPLAY应该默认设置为true,但似乎并非如此。
define('WP_DEBUG_DISPLAY', true);添加到wp_config.php修复了错误日志记录。
WP_DEBUG_DISPLAY设置为false可以从浏览器中删 debugging 误,但允许将它们输出到日志中。
看起来WordPress需要define('WP_DEBUG_DISPLAY');来将错误输出到日志中,无论您将其设置为true还是false

yqhsw0fo

yqhsw0fo3#

我也有同样的问题。对我来说,注解掉这行很有帮助。

define( 'WP_DEBUG_LOG', true );

字符串

uyhoqukh

uyhoqukh4#

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

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

define( 'WP_DEBUG_LOG', true );

字符串
您可以使用PHP提供的error_log() function写入日志文件。
另外,你可以在wp-config.php文件中添加以下代码片段。这对调试你的WordPress网站非常有用。

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);

相关问题