Как создавать логи в WordPress

16 мар. 2017 г., 08:22:00
Просмотры: 129K
Голосов: 64

Есть ли способ вести логи в WordPress, аналогично тому, как это делается в Magento?

Я разрабатываю собственный плагин, в котором добавил несколько функций с помощью хуков, и мне нужно выполнить отладку. Для этого необходимо иметь возможность записывать текст или данные в логи WordPress.

Если такая возможность существует, пожалуйста, расскажите о процедуре создания логов в WordPress.

0
Все ответы на вопрос 2
1
106

Вы можете включить логирование в WordPress, добавив это в файл wp-config.php:

 // Включаем режим WP_DEBUG
define( 'WP_DEBUG', true );

// Включаем запись логов отладки в файл /wp-content/debug.log
define( 'WP_DEBUG_LOG', true );

Вы можете записывать в лог-файл с помощью функции error_log(), предоставляемой PHP.

Следующий фрагмент кода представляет собой очень полезную обёртку для этой функции, которую можно добавить в ваш плагин:

if (!function_exists('write_log')) {

    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('ЭТО НАЧАЛО МОЕЙ ПОЛЬЗОВАТЕЛЬСКОЙ ОТЛАДКИ');
// Можно логировать данные, включая объекты
write_log($любые_данные_для_логирования);

Если вы не можете найти файл debug.log, попробуйте сгенерировать для него какие-либо данные, поскольку он не будет создан, если нет ошибок. Также на некоторых хостингах может потребоваться проверить расположение лог-файла через php info.

16 мар. 2017 г. 16:40:43
Комментарии

Для удобного использования функции write_log я создал её в виде плагина https://github.com/manchumahara/cbxwpwritelog, если это поможет. Я использую её ежедневно в целях разработки.

Manchumahara Manchumahara
17 дек. 2018 г. 08:03:14
2
12

WordPress умеет вести логи! Ознакомьтесь со страницей отладки WordPress здесь https://codex.wordpress.org/Debugging_in_WordPress

Лично я предпочитаю настраивать свои локальные сайты для разработки так, чтобы ошибки записывались в файл отладки, а не выводились на экран.

Откройте ваш файл wp_config и прокрутите вниз до раздела, где определяется WP_DEBUG.

Вот как выглядит моя стандартная настройка:

define('WP_DEBUG', true); // Включить отладку. Оставьте так, если хотите выводить ошибки, предупреждения и уведомления на экран:
define( 'WP_DEBUG_LOG', true ); // Включить логирование
define( 'WP_DEBUG_DISPLAY', false ); // Отключить вывод ошибок, предупреждений и уведомлений на экран (что лично меня СИЛЬНО раздражает):

С такими настройками WordPress будет записывать ошибки, предупреждения и уведомления в файл debug.log, расположенный в /wp-content/debug.log

Лог-файлы в продакшен-среде представляют угрозу безопасности, поэтому ЕСЛИ вы решили включить логирование на боевом сервере, рекомендуется настроить ваш .htaccess-файл для запрета доступа к лог-файлу (или использовать аналогичный плагин безопасности для его блокировки). Таким образом, вы сохраните логи, но не будете беспокоиться о том, что хакеры получат доступ к этой информации.

16 мар. 2017 г. 09:28:46
Комментарии

Могу ли я добавить любой пользовательский текст в него? Например, в цикле, просто чтобы подтвердить, какой вызывается. Я хочу ввести числа, такие как 1,2,3 и т.д. Как я могу это сделать?

Pratik bhatt Pratik bhatt
16 мар. 2017 г. 09:55:35

Вы можете. Посмотрите ответ @david о том, как это сделать :) Вот хорошая статья на эту тему https://www.elegantthemes.com/blog/tips-tricks/using-the-wordpress-debug-log

Ian Ian
17 мар. 2017 г. 08:10:06