繁体   English   中英

Gorm / Grails中的域类的环境过滤器/拦截器?

[英]Ambient filter / interceptors for domain classes in Gorm / Grails?

我只是为Grails系统集成了日志记录概念,并使用了过滤器机制来记录对控制器和操作的访问。 好处是我可以为所有控制器和动作定义一个过滤器。

对于域类,我只知道拦截器的概念,我必须为每个单独的域类编写一个拦截器。 是否有类似于域类过滤器的概念,在其中我可以定义所有域类的拦截器?

预先非常感谢,Joerg。

更新1:感谢您提供有关Stefan的Audit Logging插件的提示。 Audit Logging插件看起来是最简单的替代方法,但是根据我的喜好会生成太多的行/日志,并且不使用grails / log4j日志系统。

目前,我的要求是:

  1. 记录所有域类的插入/更新/删除(为了仅记录事件,而不是记录每个字段/列的每次更改)

  2. 登录到Grails日志记录系统(log4j),以便登录到stdout,单个数据库表或电子邮件(级别可能是,例如INFO或TRACE)

  3. 登录到特殊的域类(数据库表),以便在其之上构建日志可视化/管理系统(通过Grails控制器和操作)。 在这里,最好配置日志是在同一数据库中还是在另一个数据库/ grails-app中(以便以后拆分日志管理系统)。

据我所知,可以通过以下方式完成简单的“更改”日志记录:

  1. 域类中的单个日志语句(需要每个域类中的插入/更新/删除事件)

  2. 定义一个继承了插入/更新/删除事件的“日志”超类(使其难以在特殊域类中进行单个插入/更新/删除事件)

  3. 为所有控制器定义一个筛选器,但仅定义保存/更新/删除操作(问题:没有控制器或在一个操作中触摸多个域类,就不会记录对域类的更改)

希望这对其他人有帮助。 但是,我错过了什么吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM