【问题标题】:Grails: Logging Domain Data ChangesGrails:记录域数据更改
【发布时间】:2012-03-12 16:29:12
【问题描述】:

我需要使用 Grails 将表“documents”中的数据更改记录到另一个表“documents_log”中。 有没有简单的方法可以做到这一点?

我读到了审计日志,但是文档很差,而且它记录在同一个表中,对吧?

有什么建议吗?

【问题讨论】:

  • 审计日志不会登录同一个表。它登录audit_log

标签: grails grails-domain-class


【解决方案1】:

您也可以使用 GORM 事件:

http://grails.org/doc/latest/guide/GORM.html#eventsAutoTimestamping

并准确实现您的需要。

【讨论】:

  • 是否允许修改外部域对象?
【解决方案2】:

审计日志插件将所有对可审计域类的更改记录到名为 AUDIT_LOG 的表中。如果您的 DOCUMENTS 域是唯一可审计的域,那么它就是唯一会记录可审计事件的域。

安装插件后 (grails install-plugin audit-logging) 您可以通过添加此“可审核”设置使域类可审核:

class Documents {
    static auditable = true
    Long id
 ...

据此,通过配置更改审计表名称的能力还没有到位: http://jira.grails.org/browse/GPAUDITLOGGING-30

如果您坚持在名为 DOCUMENTS_LOG 的表中记录对 DOCUMENTS 域的更改,则可以在数据库中创建一个同义词来实现这一点。或者,如果您只需要 DOCUMENTS_LOG 可读,请针对 AUDIT_LOG 创建一个 DOCUMENTS_LOG 视图。

除此之外,我不确定您所说的“......它在同一个表中登录”是什么意思。

【讨论】:

  • 他似乎认为 Audit Logging 插件会将日志放在 Documents 表中,但正如您指出的那样,这是不正确的。
猜你喜欢
  • 2020-09-24
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多