БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»

Журнал событий и отладка в 1С-Битрикс

Журнал событий и отладка в 1С-Битрикс: логи ошибок, панель разработчика, диагностика производительности

Сайт «моргнул» белым экраном, заказ не оформился, обмен с 1С внезапно перестал приносить остатки — и первый вопрос всегда один: где смотреть? Разработчик, который не умеет читать логи 1С-Битрикс, диагностирует проблемы вслепую: перезагружает страницы, гадает и правит наугад. А тот, кто знает, куда заглянуть, находит причину за минуты.

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

Коротко

  • Логирование в Битрикс многослойное: журнал событий, логи PHP, статистика SQL, логи обмена — у каждого своя зона.
  • На боевом сайте ошибки пишутся в файл, а не показываются на экране — показ ошибок на проде недопустим.
  • Медленные страницы отлаживают панелью отладки и монитором производительности: время, число запросов, кэш.
  • Логи разрастаются — настройте ротацию и чистку, но сохраняйте события безопасности для расследований.

Зачем нужны журнал и отладка

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

Хорошо настроенная диагностика решает три задачи: быстро находить причину ошибок, отслеживать подозрительную активность (события безопасности) и выявлять узкие места производительности до того, как они станут аварией. Всё это часть здоровой эксплуатации, наравне с CI/CD и деплоем и мониторингом инфраструктуры.

Слои логирования в 1С-Битрикс

Главное, что нужно понять: в Битрикс не один лог, а несколько слоёв, и они фиксируют разные вещи. Путать их — терять время.

СлойЧто фиксируетГде смотреть
Журнал событийПрикладные и системные события платформыАдминка: Настройки → Инструменты
Логи PHPФатальные ошибки, warning, noticeerror_log сервера
Статистика SQLМедленные и ошибочные запросыНастройки подключения к БД
Монитор производительностиУзкие места, кэш, тяжёлые компонентыМодуль «Производительность»
Логи обмена с 1СПротокол импорта CommerceMLКаталог обмена, настройки обмена

Правильная диагностика начинается с вопроса «какого рода это проблема?» — и выбора нужного слоя. Ошибка прав — журнал событий. Белый экран — логи PHP. Тормоза — монитор производительности. Нет остатков — логи обмена.

Обмен данными сайта с 1С Сайткаталог, заказы1Стовары, заказыОбменочередь / APIДанные идут в обе стороны по расписанию или по событию
Схема: сайт и 1С обмениваются данными в обе стороны — по расписанию или по событию. Товары и остатки приходят на сайт, заказы уходят обратно.

Журнал событий: что и где

Журнал событий — прикладной слой. Он находится в административном разделе (Настройки → Инструменты → Журнал событий; путь чуть отличается по редакциям) и фиксирует события платформы:

Это первое место, куда стоит заглянуть при непонятном поведении сайта: часто причина видна сразу — «кто-то поменял настройку», «пользователю не хватило прав». Настраивается объём фиксируемых событий в разделе настроек главного модуля.

Логи ошибок PHP и настройки

Технический слой — логи PHP. Сюда попадают фатальные ошибки (тот самый белый экран), warning и notice движка и вашего кода. На боевом сайте эти ошибки должны писаться в файл через error_log, а не выводиться на страницу.

Ключевые точки настройки:

Умение читать эти логи критично при разборе аварий. Если проект интегрирован с внешними системами, к ним добавляются логи API — их безопасность и корректность мы разбирали в статье про REST, вебхуки и безопасность в Битрикс.

Режим отладки и показ ошибок

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

Как правильно:

  1. Прод — только в файл. Ошибки логируются в error_log, показ на экране отключён.
  2. Тест — можно на экран. Показывать ошибки прямо на странице допустимо только на закрытом от индексации тестовом контуре.
  3. Режим отладки точечно. debug=true включают на время диагностики, а не держат постоянно.
  4. Вернуть как было. После отладки настройки возвращают в боевой режим — забытый debug остаётся дырой.
Забытый режим отладки — угроза. Оставленный на проде показ ошибок раскрывает пути к файлам, версии и структуру кода. После любой диагностики проверяйте, что боевой режим восстановлен.

Панель отладки и трассировка

Для разработчика в Битрикс есть встроенная панель отладки. Она показывает внизу страницы ключевые метрики выполнения:

Эта панель — быстрый способ понять, «здорова» ли страница. Если число запросов исчисляется сотнями, а время генерации велико — значит, где-то не работает кэш или компонент дёргает базу в цикле. Для чистой работы с базой в кастомном коде помогает D7 ORM — она делает запросы явными и управляемыми.

Отладка производительности

Когда сайт тормозит, нужен системный подход, а не догадки. Инструмент — модуль «Монитор производительности», который строит отчёт по узким местам:

Отдельная большая тема — окружение: даже идеальный код тормозит на неправильно настроенном сервере. Как выстроена среда, мы разбирали в материале про инфраструктуру на BitrixVM.

Отладка обмена с 1С

Обмен с 1С по CommerceML — частый источник загадочных проблем: то остатки не приехали, то цены слетели, то товары задвоились. У обмена своё логирование, отдельное от остального сайта.

Как диагностировать:

  1. Включите подробный лог обмена. В настройках обмена активируется детальный протокол сеансов.
  2. Смотрите файлы протокола. В каталоге обмена появляются логи с ошибками разбора XML и сопоставления.
  3. Проверьте лимиты. Таймауты, память и размер шага выгрузки — частые причины обрыва обмена на больших каталогах.
  4. Сверьте структуру данных. Несоответствие свойств и типов в выгрузке ломает импорт.

На больших выгрузках чаще всего виноваты не «ошибки в коде», а инфраструктурные лимиты: сеанс упирается в таймаут или память. Поэтому отладку обмена ведут в связке с настройками сервера.

Логирование из своего кода

При разработке кастомной логики важно уметь логировать самому. В Битрикс для этого есть штатные инструменты:

Не оставляйте отладку в проде. Временный вывод в лог и var_dump на боевом сайте раздувают файлы и тормозят страницы. Отладочное логирование убирают или переводят в управляемый режим перед выкатом.

Ротация и чистка логов

Логи полезны, но они разрастаются. Журнал событий и лог-файлы со временем занимают место на диске и замедляют админку. Гигиена логов:

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

Чек-лист диагностики

  1. Определите слой. Классифицируйте проблему: событие, ошибка PHP, тормоза или обмен.
  2. Загляните в журнал событий. Проверьте системные и охранные записи на момент сбоя.
  3. Прочитайте логи PHP. Найдите фатальные ошибки и warning в error_log.
  4. Включите панель отладки. Оцените время и число запросов на проблемной странице.
  5. Запустите монитор производительности. Найдите медленные запросы и провалы кэша.
  6. Проверьте логи обмена. Если проблема в данных из 1С — смотрите протокол импорта.
  7. Верните боевой режим. Отключите отладку и уберите временный вывод после диагностики.

Вывод

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

Соблюдайте главное правило безопасности — на боевом сайте ошибки пишутся в файл, а не на экран — и держите логи под контролем через ротацию. Тогда проблемы будут ловиться заранее, а не становиться авариями. Если диагностика проекта буксует, начните с системной настройки и автоматизации на 1С вместе с аудитом.

Частые вопросы

Где в 1С-Битрикс находится журнал событий?

Журнал событий находится в административном разделе: Настройки → Инструменты → Журнал событий (в разных редакциях путь немного отличается). Туда пишутся системные события: изменения в модулях, ошибки прав доступа, действия пользователей, события безопасности и записи, которые добавляют модули и ваш код через CEventLog. Это первое место, куда стоит заглянуть при разборе непонятного поведения сайта.

Чем журнал событий отличается от логов ошибок PHP?

Это разные слои. Журнал событий Битрикса — прикладной: он фиксирует бизнес- и системные события платформы (изменение настроек, попытки входа, действия с контентом). Логи ошибок PHP (error_log) и файл /bitrix/php_interface/dbconn.php с настройками логирования — технический слой: туда попадают фатальные ошибки, warning и notice движка и вашего кода. При разборе проблемы обычно нужны оба источника.

Как включить показ ошибок на сайте для отладки?

На боевом сайте показ ошибок должен быть выключен, а логироваться в файл. Для отладки в файле /bitrix/.settings.php включают режим отладки (exception_handling с debug=true), а через настройки PHP направляют ошибки в error_log. Показывать ошибки прямо на экране можно только на закрытом тестовом контуре — на проде это дыра в безопасности и порча вёрстки для посетителей.

Как отлаживать медленные страницы в 1С-Битрикс?

Начните со встроенной панели отладки: включите отображение времени выполнения и числа запросов к базе внизу страницы. Дальше используйте трассировку компонентов и статистику SQL-запросов, чтобы найти тяжёлые места. Модуль «Монитор производительности» строит отчёт по узким местам: медленные запросы, повторный обход инфоблоков, отсутствие кэша. Это точечно показывает, что именно тормозит.

Как найти причину ошибки обмена с 1С?

Обмен с 1С по CommerceML логируется отдельно. В настройках обмена включают подробное логирование, и в каталоге обмена появляются файлы протокола импорта с ошибками разбора XML, проблемами прав и сопоставления. Смотрят также журнал событий и логи PHP на момент сеанса обмена. Частые причины — таймауты на больших выгрузках, нехватка памяти и несоответствие структуры данных.

Что такое dbconn.status и зачем он нужен?

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

Как логировать события из своего кода?

Для прикладных событий используйте CEventLog::Add — запись попадёт в журнал событий с указанным типом, модулем и описанием. Для технической отладки удобно писать в собственный лог-файл через AddMessage2Log (пишет в /bitrix/modules/*.log при включённом логировании) или напрямую в файл. Главное — не оставлять отладочный вывод на боевом сайте и чистить логи, чтобы они не разрастались бесконтрольно.

Нужно ли чистить журнал событий и логи?

Да. Журнал событий и лог-файлы со временем разрастаются и могут занять заметное место на диске и замедлить админку. Настройте ротацию логов на уровне сервера и периодическую очистку старых записей журнала (в Битрикс есть настройка срока хранения событий). Перед очисткой убедитесь, что события безопасности сохраняются достаточно долго для расследования инцидентов.

Поделиться:

Сайт сбоит, а причину найти не получается?

Настроим логирование и мониторинг, найдём источник ошибок и тормозов, наведём порядок в диагностике проекта на 1С-Битрикс. Рассчитаем работу по вашему сайту.

Аудит и оптимизация 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем и сопровождаем проекты на 1С-Битрикс: диагностика ошибок, логирование, отладка производительности и обмена с 1С.

← Все статьи блога