Я просто интегрировал концепцию ведения журнала для своей системы Grails и использовал механизм фильтрации для регистрации доступа к моим контроллерам и действиям. Хорошо, что я могу определить один фильтр для всех контроллеров и действий.
С классами домена я знаю только концепцию перехватчика, где я должен написать перехватчик для каждого отдельного класса домена. Существует ли концепция, аналогичная фильтрам для классов доменов, где я могу определить перехватчик для ВСЕХ классов доменов?
Большое спасибо заранее,
Йорг.
ОБНОВЛЕНИЕ 1:
Спасибо за совет по плагину Audit Logging от Stefan. Плагин Audit Logging выглядит как самая простая альтернатива, но на мой вкус создает слишком много строк / журналов и не использует систему журналирования grails / log4j.
В настоящее время мои требования:
Журнал вставки / обновления / удаления для всех классов домена (чтобы регистрировать только инциденты, а не каждое изменение для каждого поля / столбца)
Войдите в систему регистрации Grails (log4j), чтобы войти в стандартный вывод, отдельные таблицы базы данных или электронную почту (уровень может быть, например, INFO или TRACE)
Вход в специальный класс домена (таблица БД) для построения поверх него системы визуализации / управления журналом (через контроллер Grails и действия). Здесь было бы неплохо настроить, если журналы находятся в той же или другой базе данных / приложении grails (чтобы позже разделить систему управления журналами).
Насколько я знаю, простое ведение журнала изменений может быть сделано через:
Отдельные записи журнала в классах домена (требуются события вставки / обновления / удаления в каждом классе домена)
Определить суперкласс "Log", который наследует события вставки / обновления / удаления (затрудняет создание отдельных событий вставки / обновления / удаления в специальных классах домена)
Определить фильтр для всех контроллеров, но только сохранять / обновлять / удалять действия (проблема: не регистрируются изменения в классах домена без контроллера или если в одном действии затрагиваются несколько классов домена)
Надеюсь, это поможет другим. Тем не менее, я что-то пропустил?