audit-logging
プラグインをアプリケーションにインストールしました。grails のバージョンは2.1.1
で、プラグインのバージョンは1.0.1
です。
私のConfig.groovy
クラスでは、これを追加しました
auditLog {
verbose = true // verbosely log all changed values to db
logIds = true // log db-ids of associated objects.
// Note: if you change next 2 properties, you must update your database schema!
tablename = 'audit_logs' // table name for audit logs.
transactional = false
actorClosure = { request, session ->
org.apache.shiro.SecurityUtils.getSubject()?.getPrincipal()
}
そして私のドメインクラスにこれを追加しました
class Survey {
static auditable = true
static final int NO_RUNNING_SURVERY = 0
static final int RUNNING_SURVERY = 1
static final int CALL_NO_Record_SURVEY = 0
static final int CALL_Record_SURVEY = 1
static final int REALTIME_SURVEY = 0
static final int HISTORICAL_SURVEY = 1
static final int STANDARD_SURVERY = 2
String name
String description
int status
}
何かを追加、削除、更新するとき。私のaudit_logs
テーブルでは、1 つの操作に対して二重のレコードが挿入されました。たとえば、コントローラー クラスからステータス値を変更した場合
def stopSurvey(Long id) {
def survey = Survey.findById(params['stop'])
survey.status = Survey.NO_RUNNING_SURVERY
redirect(action: "list")
}
呼び出しごとに 2 つのレコードを挿入します。