Отладка: Xdebug, логи, SQL Tracker
Отладка платформы опирается на встроенный режим анализа SQL-запросов и кеша через меню «Отладка», логирование исключений в секции exception_handling файла .settings.php и пошаговый дебаг через Xdebug. При поиске ошибок в компонентах важно временно отключать автокеширование и композитный режим, чтобы гарантировать выполнение исходного PHP-кода на хите.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Xdebug
-
2
SQL Tracker
-
3
Логи ошибок
-
4
Debug-панель
Материалы
Официальная документация
-
Отладка запросов Новая дока
-
Конфигурация ядра: раздел «Обработка ошибок» Новая дока
Проверь себя
На проде белый экран без текста ошибки. Где искать?
В секции exception_handling файла bitrix/.settings.php: debug выключен, ошибки не показываются, а лог пишется только если задана настройка log с путём к файлу, например bitrix/modules/error.log. Включать debug на проде нельзя — настройте лог и читайте его.
Точка останова в компоненте не срабатывает, Xdebug подключён. Почему?
Код компонента не выполняется: страница отдана из композитного кеша или из кеша компонента. Отключите композит, сбросьте кеш или поставьте CACHE_TIME в 0 на время отладки. Для AJAX-запросов к /bitrix/services/main/ajax.php нужна cookie XDEBUG_SESSION, для cron-агентов — переменная окружения.
Страница каталога открывается три секунды. Как найти виноватый запрос без дополнительных инструментов?
В панели администратора меню «Отладка»: статистика SQL-запросов, время выполнения страницы и статистика кеша. Внизу страницы появится список запросов с временем и компонентом. Программно то же даёт SqlTracker: startTracker(true) у соединения и getQueries() с getSql() и getTime().
Куда пишет AddMessage2Log() и почему в файле пусто?
В файл из константы LOG_FILENAME; если она не определена, логгер по умолчанию не создаётся и вызов молча ничего не делает. Без констант работает Debug::writeToFile() из пространства имён Bitrix Main Diag с явным путём к файлу.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить