Своя сущность
Любую сущность ORM Битрикса можно добавить в журнал из админки, не написав ни строки кода: Сервисы → Журналирование сущностей → Сущности → Добавить.

Что заполняется
| Поле | Что в нём |
|---|---|
| Модуль | модуль, которому принадлежит сущность: sale, iblock, свой модуль |
| ORM Класс | класс сущности, например \Bitrix\Catalog\ProductTable |
| Ссылающийся модуль | модуль родительской сущности — для вложенных записей |
| Ссылающийся ORM Класс | класс родителя: к нему привязываются записи |
| Игнорируемые поля | поля, изменения которых в журнал не пишутся |
| Типы событий для логирования | добавление, изменение, удаление, обновления без изменений |
Модуль и класс выбираются списком: форма подсказывает установленные модули и их сущности ORM, поэтому имя класса не приходится вспоминать наизусть.
Класс проверяется при сохранении: несуществующий класс, класс не от DataManager и уже
зарегистрированный класс форма не примет и скажет, что именно не так.
Ссылающаяся сущность
Пара полей «Ссылающийся модуль» и «Ссылающийся ORM Класс» нужна для вложенных сущностей — тех, что живут внутри другой. Позиция заказа сама по себе мало о чём говорит; привязанная к заказу, она встаёт в журнал рядом с ним, и история заказа читается целиком.
Число полей связи должно совпадать с числом полей первичного ключа родителя — иначе форма покажет ошибку и не сохранит настройку.
Игнорируемые поля
Сюда попадают служебные поля, которые меняются при каждом сохранении и ничего не сообщают: отметки времени пересчёта, счётчики показов, кэшированные значения. Без исключений журнал по такой сущности превращается в поток однотипных записей, в котором не найти настоящее изменение.
Как это работает внутри
Модуль хранит зарегистрированные сущности в своей таблице и собирает для каждой класс-логгер на лету. Поэтому регистрация действует сразу и не требует ни обновления модуля, ни правки файлов.