Как я могу использовать error_log() в Wordpress?

Я пытаюсь использовать error_log() в пользовательском плагине Wordpress, который я создаю, но по какой-то причине я не могу.

Когда я использую error_log() мой сайт просто ломается, но я не вижу ошибок в debug.log.

У меня есть настройка отладки в моем файле wp_config.php следующим образом:

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

Stranegly, если я использую error_log() в своей теме, сайт не сломается, но ничего не выводится на debug.log.

Что мне нужно сделать, чтобы иметь возможность использовать error_log() в моем плагине Wordpress и теме?

Я использую Wordpress 3.9.1.

Ответы

Ответ 1

Согласно Codex, WP_DEBUG_DISPLAY должен быть установлен по умолчанию по умолчанию, но, похоже, это не так.

Добавление define('WP_DEBUG_DISPLAY', true); на wp_config.php исправлен журнал ошибок.

Установка WP_DEBUG_DISPLAY на false удалила ошибки из браузера, но разрешила их выводить в журнал.

Казалось бы, Wordpress требует define('WP_DEBUG_DISPLAY'); для вывода ошибок в журнал, установите ли вы его значение true или false.

Ответ 2

У меня такая же проблема. Для меня комментирование этой линии помогло.

define( 'WP_DEBUG_LOG', true );

Ответ 3

Включить отладку

Вы можете просто включить отладку, добавив следующий код в ваш 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