Отладочный вывод в D7: Diag\Debug без var_dump по всему продакшену
Зачем свой слой над var_dump
Прямой var_dump в шаблоне легко утекёт в браузер вместе со стилями страницы, а большие структуры разрывают разметку. \Bitrix\Main\Diag\Debug даёт управляемый формат маркированного дампа по метке переменной — удобно сравнивать несколько снимков одного сценария.
Вывод и строка-буфер
Третий параметр true переводит вывод из «в ответ HTTP» в «вернуть HTML-строку» — пригодно для лога в БД или для служебного REST, где нужно упаковать отладочный блок в JSON (на тестовом контуре).
Запись на диск
dumpToFile и writeToFile отличаются форматированием первого против «простейшего текстового представления», близкого к print_r. Путь вроде /diag/checkout_trace.log обычно означает «от корня web-проекта»: не смешивайте с файловым корнем без уточняющего DOCUMENT_ROOT; на промышленном хостинге лог лучше класть вне публичного каталога и чистить ротацией.
Пример единым блоком
use Bitrix\Main\Diag\Debug;
$payload = ['sku' => 90210, 'flags' => [1 => true]];
Debug::dump($payload, 'Cart snapshot'); // в ответ страницы (только временно)
$htmlChunk = Debug::dump($payload, 'Cart snapshot', true);
Debug::dumpToFile($payload, 'Cart snapshot', '/local/logs/trace_checkout.log');
Debug::writeToFile($payload, 'Cart snapshot', '/local/logs/trace_checkout_plain.log');В продакшене
- Не оставлять дампы включёнными на живом сайте: поисковики индексируют «случайную» простыню ошибок так же охотно, как контент.
- Сопоставляйте уровень детализации с политикой ПДн: пароли и токены в дампы не включают даже локально без маскирования.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии