Как сделать автоматический сбор и отправку логов в WordPress

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

Зачем нужен автоматический сбор и отправка логов в WordPress

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

Автоматизация сбора и отправки логов позволяет:

  • Получать уведомления о критических ошибках без постоянного контроля;
  • Сохранять логи в централизованном месте для последующего анализа;
  • Уменьшить время реакции на проблемы;
  • Обеспечить аудит безопасности и действий пользователей.

На практике можно настроить отправку логов на email, интеграцию с системами мониторинга или облачное хранилище.

Настройка стандартного логирования ошибок PHP и WordPress

Для начала нужно включить логирование ошибок PHP и WordPress. В файл wp-config.php добавьте или измените следующие строки:

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

Это включает режим отладки, записывает ошибки в файл wp-content/debug.log и скрывает ошибки на экране, что важно для безопасности.

Однако стандартный файл лога — это статический файл, его нужно периодически проверять или отправлять автоматически.

Использование плагинов для автоматической отправки логов

Для автоматизации можно использовать готовые плагины. Рассмотрим два популярных решения:

1. Log Emails

Плагин Log Emails позволяет сохранять и отслеживать все исходящие письма с сайта. Можно дополнительно настроить уведомления о неудачных отправках.

Плюсы:

  • Автоматический сбор всех email;
  • Удобный интерфейс в админке;
  • Возможность экспорта логов.

Минусы — не логирует ошибки PHP.

2. WP Log Viewer

WP Log Viewer — плагин, который позволяет просматривать и фильтровать логи, а также настроить отправку их на email по расписанию.

Он отлично подходит для мониторинга ошибок WordPress и плагинов, удобен в настройке.

Как сделать собственный автоматический сбор и отправку логов в WordPress на PHP

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

Добавьте в файл functions.php вашей темы или в отдельный плагин следующий код:

function wpstart_write_php_error_log($errno, $errstr, $errfile, $errline) {
    $log_file = WP_CONTENT_DIR . '/wpstart-error.log';
    $date = date('Y-m-d H:i:s');
    $message = "[$date] Error: $errstr in $errfile on line $errline\n";
    error_log($message, 3, $log_file);
    return false; // Позволяет стандартной обработке продолжаться
}

set_error_handler('wpstart_write_php_error_log');

function wpstart_send_error_log_email() {
    $log_file = WP_CONTENT_DIR . '/wpstart-error.log';
    if (file_exists($log_file) && filesize($log_file) > 0) {
        $to = get_option('admin_email');
        $subject = 'WordPress Error Log';
        $message = 'В приложении файл с логами ошибок WordPress.';
        $headers = ['Content-Type: text/plain; charset=UTF-8'];
        $attachments = [$log_file];
        wp_mail($to, $subject, $message, $headers, $attachments);
        // Очистить файл после отправки
        file_put_contents($log_file, '');
    }
}

// Запускаем отправку через WP-Cron раз в сутки
if (!wp_next_scheduled('wpstart_daily_error_log_send')) {
    wp_schedule_event(time(), 'daily', 'wpstart_daily_error_log_send');
}
add_action('wpstart_daily_error_log_send', 'wpstart_send_error_log_email');

Этот код:

  • Перехватывает ошибки PHP и записывает их в отдельный файл wp-content/wpstart-error.log;
  • Настраивает ежедневную задачу по отправке файла с логами на email администратора;
  • Очищает файл после отправки, чтобы не дублировать информацию.

Такой подход позволяет централизовать ошибки и получать уведомления без дополнительных плагинов.

Дополнительные рекомендации по работе с логами в WordPress

Оптимизация размера логов

Логи могут быстро разрастаться, особенно на больших сайтах с большим трафиком. Рекомендуется:

  • Очищать логи после отправки (как в примере выше);
  • Ограничивать уровень ошибок для логирования (например, только критические);
  • Архивировать старые логи и удалять их.

Интеграция с внешними системами мониторинга

Для продвинутого мониторинга можно отправлять логи в сервисы вроде Sentry, Loggly или даже Google BigQuery. Для этого есть готовые плагины и библиотеки PHP, которые легко интегрируются с WordPress.

Например, в Clearfy Pro есть инструменты для оптимизации логов и интеграции с внешними сервисами.

Безопасность логов

Логи могут содержать конфиденциальную информацию, поэтому важно:

  • Не размещать файлы логов в публичных директориях;
  • Ограничить доступ к ним через .htaccess или настройками сервера;
  • Шифровать и защищать логи при отправке на email или внешние сервисы.

Выводы

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

Если хотите начать с готового решения, рекомендую посмотреть WP Log Viewer — удобный и функциональный плагин для работы с логами.

Как удалить пустые категории и метки в базе данных WordPress
07.01.2026
Как удалить версию WordPress из HTML кода для безопасности сайта
10.11.2025
Как сделать загрузку изображений по требованию в WordPress для ускорения сайта
15.12.2025
Как автоматизировать управление ролями в WordPress с помощью кода
22.12.2025
Как запретить доступ к страницам в WordPress по IP адресу
12.03.2026