Note, the grouper_loader_log table in the DB has loader log data.
This will log to a file for the loader and other daemon jobs more information than what is in the database. You need grouper API v2.3.0+ patch 77.
The log will have one entry for an action. And some actions can be omitted if too verbose.
Log entries are linked together by an overallId and subjobId. A subjob is managing a group in a list of groups job.
Configure
In the log4j.properties, configure the loader to a file for debug
log4j.appender.grouper_daemon = org.apache.log4j.DailyRollingFileAppender log4j.appender.grouper_daemon.File = ${grouper.home}logs/grouper_daemon.log log4j.appender.grouper_daemon.DatePattern = '.'yyyy-MM-dd log4j.appender.grouper_daemon.MaxBackupIndex = 30 log4j.appender.grouper_daemon.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_daemon.layout.ConversionPattern = %d{ISO8601}: %m%n # daemon log log4j.logger.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = DEBUG, grouper_daemon log4j.additivity.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = false
In the grouper-loader.properties adjust the defaults:
################################## ## Daemon logging ################################## # When running the daemon log, do you want to log these various things? # overall log for a job daemon.log.logEnabled_overallLog = true # subjob log for a job (e.g. if a job manages a lite of groups) daemon.log.logEnabled_subjobLog = true # groups being created or deleted daemon.log.logEnabled_groupManagement = true # memberships being created or deleted daemon.log.logEnabled_membershipManagement = true # if each logger map should have an id daemon.log.logIdsEnabled = false
Simple SQL group loader logs
2017-08-19 15:48:45,729: logType: membershipManagement, overallId: TGTZ5LS0, groupName: test:testLoader, subject: Subject id: test.subject.1, sourceId: jdbc, operation: add, success: true, threadId: 30, elapsed: 58 ms 2017-08-19 15:48:45,730: logType: membershipManagement, overallId: TGTZ5LS0, groupName: test:testLoader, subject: Subject id: test.subject.0, sourceId: jdbc, operation: add, success: true, threadId: 28, elapsed: 59 ms 2017-08-19 15:48:45,730: logType: membershipManagement, overallId: TGTZ5LS0, groupName: test:testLoader, subject: Subject id: test.subject.2, sourceId: jdbc, operation: add, success: true, threadId: 29, elapsed: 59 ms 2017-08-19 15:48:45,742: logType: overallLog, overallId: TGTZ5LS0, dryRun: false, jobName: SQL_SIMPLE__test:testLoader__ccf74f3b4d0743428f7d72a14d8d81db, status: SUCCESS, jobType: SQL_SIMPLE, host: ISC15-0009-WD, dbName: grouper, query: SELECT 'jdbc' AS subject_source_id, subjectId AS subject_id FROM SUBJECT WHERE subjectId IN ('test.subject.0', 'test.subject.1', 'test.subject.2'), rowsFromExternal: 3, rowsFromGrouper: 0, deleteCount: 0, insertCount: 3, updateCount: 0, totalCount: 3, millisGetData: 25, millisLoadData: 70, threadId: 1, elapsed: 156 ms