Browse Source

smart bug定位

uncln 4 years ago
parent
commit
f552e60155

+ 24 - 6
pom.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>org.springframework.boot</groupId>
@@ -98,16 +98,22 @@
 
 
 		<!--第三方知识点库-->
-<!--		<dependency>-->
-<!--			<groupId>cn.seecoder</groupId>-->
-<!--			<artifactId>seecoder-bok</artifactId>-->
-<!--			<version>0.1.2</version>-->
-<!--		</dependency>-->
+		<!--		<dependency>-->
+		<!--			<groupId>cn.seecoder</groupId>-->
+		<!--			<artifactId>seecoder-bok</artifactId>-->
+		<!--			<version>0.1.2</version>-->
+		<!--		</dependency>-->
 
 		<dependency>
 			<groupId>cn.seecoder</groupId>
 			<artifactId>seecoder-bok-client</artifactId>
 			<version>0.2.3</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.logging.log4j</groupId>
+					<artifactId>log4j-slf4j-impl</artifactId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
 		<dependency>
@@ -128,6 +134,12 @@
 			<groupId>cn.seecoder</groupId>
 			<artifactId>judgement-client</artifactId>
 			<version>0.2.0</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.logging.log4j</groupId>
+					<artifactId>log4j-slf4j-impl</artifactId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
 		<!--代码题评测-->
@@ -135,6 +147,12 @@
 			<groupId>cn.seecoder</groupId>
 			<artifactId>codejudge-client</artifactId>
 			<version>0.1.0</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.logging.log4j</groupId>
+					<artifactId>log4j-slf4j-impl</artifactId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
 		<!--日志服务-->

+ 23 - 4
src/main/java/com/nju/edu/eval/service/serviceImpl/JudgeServiceImpl.java

@@ -29,6 +29,7 @@ import com.nju.edu.eval.service.JudgeService;
 import com.nju.edu.eval.util.LogTracingUtil;
 import com.nju.edu.logTracking.enums.SeecSystem;
 import org.apache.logging.log4j.LogBuilder;
+import org.slf4j.Logger;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -39,6 +40,7 @@ import java.util.stream.Collectors;
  */
 @Service
 public class JudgeServiceImpl implements JudgeService {
+
     private final JudgeManager judgeManager;
     private final QuestionManager questionManager;
     private final ScoreDao scoreDao;
@@ -59,7 +61,12 @@ public class JudgeServiceImpl implements JudgeService {
     public ObjectiveJudgeResVO judgeObjectiveQuestionAnswers(Integer userId, Integer examId, ObjectiveJudgeVO objectiveJudgeVO) {
         try {
             // 提交给判题系统
-            JudgedAnswersVO judgedAnswersVO = judgeManager.judgeObjectiveQuestionAnswers(userId, objectiveJudgeVO);
+            JudgedAnswersVO judgedAnswersVO = null;
+            try {
+                judgedAnswersVO = judgeManager.judgeObjectiveQuestionAnswers(userId, objectiveJudgeVO);
+            }catch (ThirdPartyServiceException e){
+                LogTracingUtil.logSimple("no error");
+            }
 
             User user = userDao.findById(userId).orElse(null);
             Exam exam = examDao.findById(examId).orElse(null);
@@ -85,8 +92,16 @@ public class JudgeServiceImpl implements JudgeService {
                 // 看该题是否正确
                 boolean isTrue = judgedAnswersVO.getAnswers().get(questionId).getCorrect();
                 // 填入错题集
-                if (!isTrue)
-                    err.add(new AnswerDTO(questionId, scoreOfQuestion));
+
+
+                try {
+                    if (!isTrue)
+                        err.add(new AnswerDTO(questionId, scoreOfQuestion));
+                }catch (Exception e) {
+                    LogTracingUtil.logSimple("smart error");
+                }
+
+
                 double actualScore = isTrue ? scoreOfQuestion : 0;
                 curScore += actualScore;
                 QuestionRecord questionRecord = new QuestionRecord(user, exam, entry.getKey(), score, (String) entry.getValue().getAnswer(), actualScore, currentTime);
@@ -100,7 +115,11 @@ public class JudgeServiceImpl implements JudgeService {
             scoreDao.save(score);;
 
             // 提交记录日志
-            LogTracingUtil.logRecord(new ExamRecordLog(examId, userId, currentTime, curScore, err));
+            try {
+                LogTracingUtil.logRecord(new ExamRecordLog(examId, userId, currentTime, curScore, err));
+            }catch (Exception e) {
+                LogTracingUtil.logSimple("smart error");
+            }
 
             return new ObjectiveJudgeResVO(judgedAnswersVO.getSubmitAt(), judgedAnswersVO.getSubmitNumber());
 

+ 4 - 0
src/main/java/com/nju/edu/eval/util/LogTracingUtil.java

@@ -73,4 +73,8 @@ public class LogTracingUtil {
     public static void logRecord(ExamRecordLog examRecordLog) {
         logToAnalysis(JSON.toJSONStringWithDateFormat(examRecordLog, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat), 2);
     }
+
+    public static void logSimple(String log) {
+        logger.info(log);
+    }
 }

+ 1 - 1
src/main/resources/application-test.yml

@@ -47,6 +47,6 @@ code-judgement-client:
 
 logging:
   file:
-    name: /log/eval.log
+    name: /app/eval.log
   level:
     root: info