Главная » Разработка Битрикс » Полезное » Режим отладки в Битрикс: включение и что смотреть

Режим отладки в Битрикс: включение и что смотреть

Инструменты отладки в Битрикс: вывод ошибок, лог SQL-запросов и логирование обработчиков событий

Режим отладки в 1С-Битрикс — это не одна галочка, а набор независимых настроек: вывод ошибок PHP, журнал SQL-запросов, отладка событий, таймер производительности. Разберём, что реально показывает каждая из них и почему включать всё сразу на боевом сайте не стоит.

Вывод ошибок PHP

Базовая настройка находится в /bitrix/.settings.php, в секции exception_handling. Параметр debug со значением true включает подробный вывод ошибок прямо на странице:

<?php
return [
    'exception_handling' => [
        'value' => [
            'debug' => true,
            'log'   => [
                'settings' => ['file' => 'bitrix/modules/error.log'],
            ],
        ],
    ],
];

На боевом сайте эту настройку держат выключенной: текст ошибки PHP раскрывает пути на сервере и структуру проекта посетителям, а это прямая подсказка для потенциальной атаки. Включать её нужно точечно на время отладки и обязательно выключать после.

Журнал ошибок без вывода на экран

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

Нужна помощь с Битрикс?





    Отладка SQL-запросов

    <?php
    define('DBDebug', true);
    define('DBDebugToFile', true);

    Константы задаются в /bitrix/php_interface/dbconn.php. При включении система пишет все выполненные SQL-запросы в отдельный лог, что позволяет увидеть, какие именно запросы делает страница и сколько времени они занимают, — полезно при поиске узкого места в производительности.

    Держать эту настройку включённой постоянно нельзя: лог растёт очень быстро на посещаемом сайте и сам по себе создаёт нагрузку на диск и на скорость записи.

    Отладка обработчиков событий

    Специального переключателя для отладки конкретно событий в ядре нет — отслеживание построено на ручном логировании внутри самих обработчиков:

    <?php
    
    AddEventHandler('main', 'OnBeforeUserAdd', function (&$arFields) {
        \Bitrix\Main\Diag\Debug::writeToFile(
            $arFields,
            'OnBeforeUserAdd',
            '/local/logs/events.log'
        );
    
        return true;
    });

    Такой подход универсален: работает для любого события, не требует глобальных настроек и легко убирается после того, как отладка завершена.

    Панель отладки для разработчика

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

    Что смотреть при разных типах проблем

    ПроблемаЧто включить
    Белый экран, фатальная ошибкаdebug => true в настройках или лог ошибок
    Страница медленнаяОтладка SQL-запросов или монитор производительности
    Обработчик события не срабатываетРучное логирование внутри обработчика
    Неясно, откуда приходят данныеВывод переменных в лог в конкретном месте кода

    Отладка на боевом сайте без риска

    Если отладка нужна прямо на рабочем сайте, а не на тестовой копии, разумно ограничить область: включить вывод ошибок или лог SQL только для собственного IP-адреса, а не для всех посетителей. Это можно организовать проверкой адреса в начале скрипта перед включением соответствующих констант.

    Частые ошибки

    • Вывод ошибок остаётся включённым после отладки. Посетители видят технические детали устройства сайта.
    • Отладка SQL включена постоянно на посещаемом сайте. Лог растёт бесконтрольно и создаёт дополнительную нагрузку.
    • Логирование не убирается из кода после решения проблемы. Со временем в проекте накапливается множество забытых отладочных записей.
    • Отладка включается сразу на боевом сайте без тестового окружения. Риск временно показать чувствительную информацию посетителям.

    Итог

    Режим отладки в Битрикс — это набор независимых инструментов: вывод ошибок PHP, лог ошибок без вывода на экран, журнал SQL-запросов и ручное логирование внутри кода. Каждый включается для конкретной задачи и обязательно выключается после того, как проблема найдена, — постоянно включённая отладка на боевом сайте создаёт и риски безопасности, и лишнюю нагрузку.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    База знаний