5.9.4.1. Настройка журналирования
Простейший способ настройки аудита - воспользоваться экраном приложения Administration > Entity Log > Setup.
Вы также можете настроить аудит путем внесения информации напрямую в БД, если необходимо включить конфигурацию в скрипты инициализации базы данных.
Аудит настраивается при помощи сущностей LoggedEntity
и LoggedAttribute
(соответствующих таблицам SEC_LOGGED_ENTITY и SEC_LOGGED_ATTR).
LoggedEntity
описывает тип сущности, изменения которой необходимо журналировать. Атрибуты LoggedEntity
:
-
name
(колонка NAME) - тип сущности в виде имени мета-класса, например,sales$Customer
. -
auto
(колонка AUTO) - нужно ли журналировать изменения при вызовеEntityLogAPI
с параметромauto = true
(т.е. из Entity Listeners). -
manual
(колонка MANUAL) - нужно ли журналировать изменения при вызовеEntityLogAPI
с параметромauto = false
.
LoggedAttribute
описывает журналируемый атрибут сущности и содержит ссылку на LoggedEntity
и имя атрибута.
Для настройки журналирования некоторой сущности достаточно внести соответствующие записи в таблицы SEC_LOGGED_ENTITY и SEC_LOGGED_ATTR. Например, для ведения журнала изменений атрибутов name
и grade
сущности Customer
, необходимо выполнить:
insert into SEC_LOGGED_ENTITY (ID, CREATE_TS, CREATED_BY, NAME, AUTO, MANUAL)
values ('25eeb644-e609-11e1-9ada-3860770d7eaf', now(), 'admin', 'sales$Customer', true, true);
insert into SEC_LOGGED_ATTR (ID, CREATE_TS, CREATED_BY, ENTITY_ID, NAME)
values (newid(), now(), 'admin', '25eeb644-e609-11e1-9ada-3860770d7eaf', 'name');
insert into SEC_LOGGED_ATTR (ID, CREATE_TS, CREATED_BY, ENTITY_ID, NAME)
values (newid(), now(), 'admin', '25eeb644-e609-11e1-9ada-3860770d7eaf', 'grade');
Механизм журналирования по умолчанию активен. Если вы хотите его отключить, необходимо установить в false
атрибут Enabled
JMX-бина app-core.cuba:type=EntityLog
и вызвать его операцию invalidateCache()
. В качестве альтернативы можно установить в false
значение свойства приложения cuba.entityLog.enabled и рестартовать сервер.