2012-10-11 2 views
0

감사 할 수있는 각 도메인의 인스턴스 또는 적어도 ID를 저장하려고합니다. 예를 들어 'Student'라는 도메인이 있으며 감사 대상입니다. 따라서 도메인의 인스턴스가 생성되거나 편집 될 때마다 새 레코드가 감사 로그에 저장됩니다. 내가 원하는 것은 저장되거나 업데이트 된 각 도메인의 ID를 저장하는 것입니다. 어떻게 할 수 있습니까? 미리 감사드립니다.Grails 감사 로깅 플러그인

답변

1

아래에 최대 절전 모드를 사용하는 Grails Envers 플러그인을 사용할 수 있습니다. 플러그인 정보는 플러그인 사이트 here에서 찾을 수 있습니다.

0

감사 플러그인을 사용하지 않으므로 테스트를 실행할 때 몇 가지 문제가 있습니다. 이 플러그인은 GORM이 이벤트를 지원하지 않을 때 만들어졌습니다. 당신이 당신은 아래와 같은 AuditLog 보고서 플러그인 이벤트를 사용하고 당신이 너무 좋아하는 것 무엇도 추가 할 수 있습니다

+0

이전 프로젝트와 감사 로깅이 이미 사용 중이므로 변경할 수 없습니다. 감사 로깅 플러그인 도메인에서 beforeInsert를 사용할 수 있습니까? –

+0

아래 도움말이 도움이됩니다. – allthenutsandbolts

0

하는 데 도움이 다음과 같은 이벤트를

beforeInsert - Executed before an object is initially persisted to the database 
beforeUpdate - Executed before an object is updated 
beforeDelete - Executed before an object is deleted 
beforeValidate - Executed before an object is validated 
afterInsert - Executed after an object is persisted to the database 
afterUpdate - Executed after an object has been updated 
afterDelete - Executed after an object has been deleted 
onLoad - Executed when an object is loaded from the database 

희망을 가로 챌 수 있습니다. http://grails.org/plugin/audit-logging

위의 플러그인 모음없이 도메인 클래스에 대해 잘 작동 : 우리가

def event = new AuditLogEvent(
        actor: actor, 
        className: className, 
        eventName: eventName, 
        persistedObjectId: objectId, 
        propertyName: propertyName, 
        newValue: newValue 
      ) 
      if (event.validate()) { 
       auditLogListener.saveAuditLog(event) 
       log.info "Logged audit event [$event]" 
      } 
1

당신은 더 나은 URL을 참조 할 수 있습니다 사용할 수 있습니다이 이러한 방법 중 하나에 의미를

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


def onSave = { 
     println "new datainserted" 
     // may optionally refer to newState map 
    } 

을 만드는 희망 도메인 클래스에서 컬렉션을 사용하는 경우이 stackoverflow 링크를 참조하십시오. How to determine Collection changes in a Hibernate PostUpdateEventListener?

많은 도움이 되길 바랍니다.