簡體   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