3

我正在使用http://grails.org/plugin/audit-logging插件,并且只对审计大型域类中的单个字段感兴趣。我可以指定一个冗长的“忽略”列表,但理想情况下,我想指定字段的白名单,这样如果添加了新字段,则无需维护忽略列表以避免它们被自动审核,这可能是一种性能风险。

这可能吗?我没有在插件的文档中看到它的提及。

4

1 回答 1

1

我认为你可以只使用事件处理程序而不是标准审计日志来做到这一点。你会像这样设置审计

static auditable = [handlersOnly: true]

您可以创建一个白名单

def whiteList = ['name','age',...]

然后创建 on* 事件来处理保存、删除或更改事件,并遍历白名单以在新旧映射中查找该键:

def onChange = {oldMap, newMap ->
    whiteList.each{propName->
       if(oldMap[propName] != newMap[propName]) {
         //
       }
    }
}
于 2012-05-09T22:05:38.353 回答