Как настроить логирование ошибок в WordPress для разработчиков

Почему важно настраивать логирование ошибок в WordPress

Логирование ошибок — это один из ключевых инструментов для разработчика и администратора сайта на WordPress. Без него сложно понять, что именно вызывает сбои, ошибки и некорректное поведение сайта. Особенно это важно на стадии разработки, тестирования и при решении проблем на продакшене.

WordPress сам по себе имеет встроенные средства для логирования ошибок, но по умолчанию их включение отключено или настроено минимально. В статье мы подробно рассмотрим, как правильно настроить логирование, куда выводятся ошибки, какие существуют уровни логов и как использовать плагины и кастомный код для удобной отладки.

Правильная настройка логирования позволяет:

  • Отслеживать PHP-ошибки и предупреждения;
  • Логировать пользовательские сообщения и события;
  • Идентифицировать проблемы с плагинами и темами;
  • Улучшить стабильность и безопасность сайта;
  • Облегчить работу с техподдержкой и разработчиками.

Как включить и настроить стандартное логирование в WordPress

Для активации логирования ошибок в WordPress необходимо изменить файл wp-config.php. Рекомендуется делать это аккуратно, чтобы не нарушить работу сайта.

Основные константы, которые отвечают за логирование:

  • WP_DEBUG — включает режим отладки (true/false);
  • WP_DEBUG_LOG — включает запись ошибок в лог-файл;
  • WP_DEBUG_DISPLAY — отвечает за вывод ошибок на экран;
  • SCRIPT_DEBUG — включает использование не сжатых файлов скриптов и стилей.

Пример правильной настройки в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

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

Что означают эти настройки

WP_DEBUG — базовый «включатель» режима отладки. Без него остальные настройки не работают.

WP_DEBUG_LOG создает или дописывает файл debug.log и туда записывает все ошибки и предупреждения.

WP_DEBUG_DISPLAY определяет, будут ли ошибки выводиться прямо на страницах сайта. При значении false ошибки скрыты от посетителей.

Использование @ini_set('display_errors', 0); дополнительно гарантирует, что ошибки не выведутся через настройки PHP.

Примеры расширенного логирования с помощью пользовательских функций

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

Пример функции для записи в отдельный лог-файл:

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

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

wpconfig_write_log('Пользователь #' . get_current_user_id() . ' успешно вошел в систему');

Если вы хотите логировать в отдельный файл, то можно немного доработать функцию:

function wpconfig_write_log($message) {
    if (WP_DEBUG !== true) return;
    $log_file = WP_CONTENT_DIR . '/wpconfig_custom.log';
    $log_message = date('Y-m-d H:i:s') . ' - ';
    if (is_array($message) || is_object($message)) {
        $log_message .= print_r($message, true);
    } else {
        $log_message .= $message;
    }
    file_put_contents($log_file, $log_message . "\n", FILE_APPEND);
}
<

Применение пользовательского логирования

Такое решение полезно, когда нужно логировать только определённые действия, например, вызовы API, события плагина или ошибки специфичного функционала.

Вы можете добавлять вызовы wpconfig_write_log() в хуки WordPress, обработчики AJAX, REST API или другие места кода.

Плагины для удобного логирования и мониторинга ошибок

Если не хочется самостоятельно заниматься настройкой логов, можно использовать готовые плагины. Они предоставляют удобный интерфейс, фильтры и расширенные возможности.

Вот несколько полезных плагинов для логирования:

  • Query Monitor — один из лучших инструментов для отладки и мониторинга запросов, ошибок PHP, хуков и многого другого прямо в админке.
  • WP Log Viewer — простой плагин для просмотра логов debug.log из админки без доступа к FTP.
  • Simple History — плагин для логирования действий пользователей и изменений в админке.
  • Log Deprecated Notices — помогает отслеживать использование устаревших функций и хуков.

Как использовать Query Monitor для поиска ошибок

После установки и активации Query Monitor в верхней панели админки появится индикатор с информацией о запросах и ошибках. Можно открывать подробные отчёты и находить проблемные места в коде.

Query Monitor отображает ошибки PHP, предупреждения, запросы к базе данных, хуки и даже HTTP-запросы, что делает его незаменимым инструментом для разработчика.

Советы по безопасности при работе с логами

Лог-файлы могут содержать чувствительную информацию — имена пользователей, пути к файлам, детали ошибок и другое. Поэтому важно обеспечить их защиту:

  • Не выводите логи на публичные страницы сайта;
  • Ограничьте доступ к директории wp-content через .htaccess или серверные настройки;
  • Регулярно очищайте или архивируйте логи, чтобы не занимали много места;
  • Используйте плагины с проверенной репутацией и обновляйте их;
  • При необходимости перенаправляйте логи на удалённые сервисы мониторинга.

Пример добавления защиты через .htaccess для файла debug.log:

<Files "debug.log">
    Order allow,deny
    Deny from all
</Files>

Итоги и рекомендации по настройке логирования в WordPress

Логирование ошибок — важный аспект разработки и поддержки сайтов на WordPress. Правильная настройка позволяет быстро находить и исправлять ошибки, улучшать качество кода и повышать безопасность.

Основные шаги для эффективного логирования:

  1. Включить WP_DEBUG и WP_DEBUG_LOG в wp-config.php.
  2. Отключить вывод ошибок на экран в продакшене (WP_DEBUG_DISPLAY = false).
  3. Использовать пользовательские функции для дополнительного логирования важных событий.
  4. Применять плагины, такие как Query Monitor, для удобного мониторинга из админки.
  5. Обеспечить защиту логов и регулярно их проверять.

Соблюдая эти рекомендации, вы значительно упростите свою работу с WordPress и повысите стабильность сайта.

Как отключить Gutenberg только для определённых типов записей в WordPress
06.12.2025
Как создать и использовать переходные функции (transients) в WordPress для оптимизации производительности
20.01.2026
Как удалить или изменить метаданные медиафайлов в WordPress: пошаговое руководство
30.12.2025
Как создать автозапуск функций в WordPress без использования WP-Cron
08.01.2026
Как настроить очистку кеша в WordPress: практическое руководство
03.12.2025