Index: lams_build/conf/slim/standalone.xml =================================================================== diff -u -r4a13950e9817d6f085eba22ec4d685a7a09a36fc -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1 --- lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision 4a13950e9817d6f085eba22ec4d685a7a09a36fc) +++ lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1) @@ -123,6 +123,16 @@ + + + + + + + + + @@ -262,7 +272,16 @@ - + + + + + + + + + @@ -489,4 +508,4 @@ - + \ No newline at end of file Index: lams_build/conf/standalone.xml =================================================================== diff -u -r4a13950e9817d6f085eba22ec4d685a7a09a36fc -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1 --- lams_build/conf/standalone.xml (.../standalone.xml) (revision 4a13950e9817d6f085eba22ec4d685a7a09a36fc) +++ lams_build/conf/standalone.xml (.../standalone.xml) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1) @@ -152,6 +152,16 @@ + + + + + + + + + @@ -291,7 +301,16 @@ - + + + + + + + + + @@ -680,4 +699,4 @@ - + \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r466b430b11cd214ae9c8a4737ea5f6ed9253ed27 -rd411f14ac0e5cf4b3c477df36a2cae4b77cb84c1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 466b430b11cd214ae9c8a4737ea5f6ed9253ed27) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision d411f14ac0e5cf4b3c477df36a2cae4b77cb84c1) @@ -157,6 +157,7 @@ implements IAssessmentService, ICommonAssessmentService, ToolContentManager, ToolSessionManager, ToolRestManager, IQbToolService { private static Logger log = Logger.getLogger(AssessmentServiceImpl.class.getName()); + private static Logger logAutosave = Logger.getLogger(AssessmentServiceImpl.class.getName() + "_autosave"); private AssessmentDAO assessmentDao; @@ -860,6 +861,21 @@ questionResult.getAnswerFloat(), questionDto.getAnswerFloat()) || !Objects.equals( questionResult.getAnswer(), questionDto.getAnswer()); + // this is for logging every autosave as requested by Imperial + // it produces a lot of logs, so it goes to a separate file + StringBuilder autosaveLogBuilder = null; + if (logAutosave.isTraceEnabled()) { + autosaveLogBuilder = new StringBuilder("For learner ").append(assessmentResult.getUser().getUid()) + .append(" \"").append(assessmentResult.getUser().getLoginName()).append("\" for question ") + .append(questionDto.getUid()).append(" for question result ").append(questionResult.getUid()) + .append(" answer was \"").append(questionResult.getAnswer()).append("\" and it is now \"") + .append(questionDto.getAnswer()).append("\", answerBoolean was \"") + .append(questionResult.getAnswerBoolean()).append("\" and it is now \"") + .append(questionDto.getAnswerBoolean()).append("\", answerFloat was \"") + .append(questionResult.getAnswerFloat()).append("\" and it is now \"") + .append(questionDto.getAnswerFloat()).append("\""); + } + // store question answer values questionResult.setAnswerBoolean(questionDto.getAnswerBoolean()); questionResult.setAnswerFloat(questionDto.getAnswerFloat()); @@ -887,6 +903,12 @@ isAnswerModified |= !Objects.equals(optionAnswer.getAnswerBoolean(), optionDto.getAnswerBoolean()); } + if (logAutosave.isTraceEnabled()) { + autosaveLogBuilder.append(", for option ").append(optionDto.getUid()).append(" option result ") + .append(optionAnswer.getUid()).append(" was \"").append(optionAnswer.getAnswerBoolean()) + .append("\" and it is now \"").append(optionDto.getAnswerBoolean()).append("\""); + } + // store option answer values optionAnswer.setAnswerBoolean(optionDto.getAnswerBoolean()); if (questionDto.getType() == QbQuestion.TYPE_ORDERING) { @@ -898,6 +920,10 @@ } } + if (logAutosave.isTraceEnabled()) { + logAutosave.trace(autosaveLogBuilder); + } + // store confidence levels entered by the learner if (assessment.isEnableConfidenceLevels()) { isAnswerModified |= !Objects.equals(questionResult.getConfidenceLevel(), questionDto.getConfidenceLevel());