在PHP和Wordpress中调试


Debugging in PHP and Wordpress

@ini_set('log_errors','On');define('WP_DEBUG', true);

我正试图创建一个错误日志文件,但我对这两个文件感到困惑。log_errorsWP_DEBUG会产生什么样的错误?

define('WP_DEBUG_LOG', true);会将错误记录到wp内容目录中的debug.log文件中,@ini_set('log_errors','On');允许您指定要保存错误的文件

@ini_set('log_errors', 1);
@ini_set('display_errors', 0); /* enable or disable public display of errors (use 'On' or 'Off') */
@ini_set('error_log', dirname(__FILE__) . '/wp-content/logs/your-error-file.log'); /* path to server-writable log file */
@ini_set( 'error_reporting', E_ALL ^ E_NOTICE ); /* the php parser to  all errors, excreportept notices.  */

@ini_set('log_errors','On');选项将PHP处理程序设置为记录错误。它是一个用于控制脚本行为的通用配置选项。更多关于这里的功能

另一方面,define('WP_DEBUG', true);是非常特定于WP的,它用于捕获和打印到屏幕/写入到文件的WP特定错误。点击此处了解更多信息。

写入日志文件

  1. PHP

如果PHP是Apache2模块,则PHP将错误日志存储在/var/log/apache2中。共享主机通常将日志文件存储在根目录/log子文件夹中。

如果您有权访问php.ini文件,您可以指定如下路径:

error_log = /var/log/custom-logging-script.log
  1. WordPress

您可以通过设置define( 'WP_DEBUG_LOG', true );来告诉WP将条目记录到文件中。这将导致所有错误也被保存到/wp-content/目录中的debug.log日志文件中。

  1. 或者

如果您想快速检查一个函数或变量,请尝试类似error_log($my_error, 3, "/var/tmp/my-errors.log");的方法。这是一个方便的功能,这里有更多详细信息。

使用什么取决于您的需求和您想要调试的内容。