2013-06-27 43 views
5

我需要在我的grails應用程序中使用審計跟蹤我已經嘗試過所有方法,但審計日誌是空的有沒有什麼辦法來糾正它。我需要實際記錄操作,如插入,刪除和更新。如何使我的審計跟蹤插件工作

下面是我遵循: - 我檢查

package audit 

class Person { 
    static auditable = true 
    String firstName 

    static constraints = { 
     firstName(nullable:true,size:0..60) 
    } 

    def onSave = { 
     println "new person inserted" 
    } 

    def onUpdate = { 
     println "person was updated" 
    } 

    def onDelete = { 
     println "person was deleted" 
    } 

    def onChange = { oldMap,newMap -> 
     println "Person was changed ..." 
     oldMap.each{ key, oldVal -> 
      if(oldVal != newMap[key]) { 
       println " * $key changed from $oldVal to " + newMap[key] 
      } 
     } 
    } 
} 
+1

你能提供一些代碼和更多的有關確切問題的信息嗎? – moeTi

+0

我在grails中有一個應用程序,我需要使用審計跟蹤。我試過這個代碼。我安裝了插件並創建了一個域類Person和寫入方法來保存。現在我可以在數據庫中看到表,但是沒有記錄。如何觸發事件以與數據庫鏈接。 –

+0

我隨後的代碼是包審計 類Person { \t靜態可審計=真 \t字符串的firstName靜態約束= { \t \t的firstName(可爲空:真,尺寸:0..60) \t \t} \t DEF的onSave = { \t \t的println 「插入新的人」 \t} \t高清的onUpdate = { \t \t的println 「人被更新」 \t} \t高清onDelete = { \t \t的println 「的人已被刪除」 \t} \t高清的onChange = {oldMap,newMap - > \t \t的println 「人改變......」 \t \t oldMap.each( {密鑰,OLDVAL - > \t \t \t如果(!OLDVAL = newMap [鍵]){ \t \t \t \t的println 「* $鍵從$ OLDVAL改變爲」 + newMap [鍵] –

回答

0

其他郵件列表表明,當前審計日誌記錄插件是越野車,所以你可能只是遇到在插件中的錯誤。另外,我相信它已經被分叉並正在積極重寫(http://jira.grails.org/browse/GPAUDITLOGGING),所以你現在可能不想花太多時間。

雖這麼說,我架式與您提供的域名一個簡單的應用程序和插件那樣寫出來的的println語句,但它只能在數據庫中正確記錄更新到AUDIT_LOG表。對於NEW_VALUEPROPERTY_NAME,我試圖插入的2個插頁記錄爲null

Grails dbconsole window