Parcourir la source

feat: 尝试接入日志部分

uncln il y a 4 ans
Parent
commit
161eae38ea

+ 40 - 0
pom.xml

@@ -58,6 +58,25 @@
             <artifactId>jjwt</artifactId>
             <version>0.9.1</version>
         </dependency>
+
+        <!--日志服务-->
+        <dependency>
+            <groupId>com.nju.edu</groupId>
+            <artifactId>seecoder-logTracking-consumer</artifactId>
+            <version>0.1.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>
@@ -77,4 +96,25 @@
         </plugins>
     </build>
 
+    <repositories>
+        <repository>
+            <id>nexus</id>
+            <url>http://nexus.seecoder.cn/repository/maven-releases/</url>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>always</updatePolicy>
+            </releases>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
+    <distributionManagement>
+        <repository>
+            <id>nexus</id>
+            <url>http://nexus.seecoder.cn/repository/maven-releases/</url>
+        </repository>
+    </distributionManagement>
+
 </project>

+ 40 - 0
settings.xml

@@ -0,0 +1,40 @@
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+					http://maven.apache.org/xsd/settings-1.0.0.xsd">
+	<mirrors>
+		<mirror>
+			<id>aliyunmaven</id>
+			<mirrorOf>central</mirrorOf>
+			<name>阿里云公共仓库</name>
+			<url>https://maven.aliyun.com/repository/public</url>
+		</mirror>
+	</mirrors>
+	<profiles> 
+		<profile> 
+			<id>nexus</id>  
+			<repositories> 
+				<repository> 
+					<id>public</id>  
+					<name>Public Repositories</name>  
+					<url>http://nexus.seecoder.cn/repository/maven-public</url> 
+				</repository> 
+				<repository> 
+					<id>releases</id>  
+					<name>Public Repositories</name>  
+					<url>http://nexus.seecoder.cn/repository/maven-releases</url> 
+				</repository> 
+			</repositories>
+		</profile> 
+	</profiles>
+	<activeProfiles>
+			<activeProfile>nexus</activeProfile>
+	</activeProfiles>
+	<servers>
+		<server>
+			<id>nexus</id>
+			<username>admin</username>
+			<password>NJU67nexus</password>
+		</server>
+	</servers>
+</settings>

+ 2 - 2
src/main/java/com/seecoder/dataanalysis/analysis/impl/DataAnalysisServiceImpl.java

@@ -43,8 +43,8 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
     @Override
     public CompetencyTree getTreeAfterExam(int exam_id){
         //TODO 测试检查
-        EvalExamRecord evalExamRecord = evalExamRecordDao.findById(""+exam_id).get();
-        EvalExamInfo evalExamInfo = evalExamInfoDao.findById(""+exam_id).get();
+        EvalExamRecord evalExamRecord = evalExamRecordDao.findById(exam_id).get();
+        EvalExamInfo evalExamInfo = evalExamInfoDao.findById(exam_id).get();
         CompetencyTree competencyTree = competencyTreeDao.findByStudentId(evalExamRecord.getStudentId());
 
         //数据取完,开始进行KSD分析和入库

+ 42 - 0
src/main/java/com/seecoder/dataanalysis/config/LogTrackingConfig.java

@@ -0,0 +1,42 @@
+package com.seecoder.dataanalysis.config;
+
+import com.nju.edu.logTracking.LogConsumer;
+import com.seecoder.dataanalysis.logic.parser.LogParsingService;
+import com.seecoder.dataanalysis.util.LoggerUtil;
+import com.seecoder.dataanalysis.vo.SimpleLog;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class LogTrackingConfig {
+
+    private static final Logger logger = LoggerUtil.getLogger(LogTrackingConfig.class);
+
+    @Autowired
+    LogParsingService logParsingService;
+
+    @Bean
+    public void LogTrackingConfigurer() {
+        //需新建LogConsumer类型的对象,实现run方法
+        //run方法参数value为接收到的json格式的log,每次接收到log都会执行run方法
+        LogConsumer myConsumer = new LogConsumer() {
+            @Override
+            public void run(String value) {
+                try {
+                    LoggerUtil.info(logger, "get log: " + value); //此为示例,意思是每次接收到log都将其打印到终端
+                    SimpleLog sl = logParsingService.parseLog(value);
+                    logParsingService.parseLogData(sl, true);
+                }catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        };
+
+        //需使用此函数以开启消费
+        myConsumer.processLog();
+
+        LoggerUtil.info(logger, "log tracking Start successfully");
+    }
+}

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/data/dao/competency/CompetencyTreeDao.java

@@ -3,6 +3,6 @@ package com.seecoder.dataanalysis.data.dao.competency;
 import com.seecoder.dataanalysis.data.entity.competency.CompetencyTree;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
-public interface CompetencyTreeDao extends MongoRepository<CompetencyTree, String> {
+public interface CompetencyTreeDao extends MongoRepository<CompetencyTree, Integer> {
     CompetencyTree findByStudentId(Integer studentId);
 }

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/data/dao/eval/EvalExamInfoDao.java

@@ -3,5 +3,5 @@ package com.seecoder.dataanalysis.data.dao.eval;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamInfo;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
-public interface EvalExamInfoDao extends MongoRepository<EvalExamInfo, String> {
+public interface EvalExamInfoDao extends MongoRepository<EvalExamInfo, Integer> {
 }

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/data/dao/eval/EvalExamRecordDao.java

@@ -3,5 +3,5 @@ package com.seecoder.dataanalysis.data.dao.eval;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamRecord;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
-public interface EvalExamRecordDao extends MongoRepository<EvalExamRecord, String> {
+public interface EvalExamRecordDao extends MongoRepository<EvalExamRecord, Integer> {
 }

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/data/dao/eval/UserDao.java

@@ -4,7 +4,7 @@ import com.seecoder.dataanalysis.data.entity.eval.User;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
 
-public interface UserDao extends MongoRepository<User, String> {
+public interface UserDao extends MongoRepository<User, Integer> {
 
     User findByUserId(Integer userId);
 

+ 37 - 0
src/main/java/com/seecoder/dataanalysis/util/LoggerUtil.java

@@ -0,0 +1,37 @@
+package com.seecoder.dataanalysis.util;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LoggerUtil {
+
+    public static Logger getLogger(Class<?> className){
+        return LoggerFactory.getLogger(className);
+    }
+
+    public static void info(Logger logger, String info, Object... parameters){
+        logger.info(info, parameters);
+    }
+
+    public static void warn(Logger logger, String info, Object... parameters){
+        logger.warn(info, parameters);
+    }
+
+    public static void warn(Logger logger, Exception e, String info, Object... parameters) {
+        logger.warn("", e);
+        logger.warn(info, parameters);
+    }
+
+    public static void  error(Logger logger, String info, Object... parameters) {
+        logger.error(info, parameters);
+    }
+
+    public static void error(Logger logger, Exception e, String info, Object... parameters) {
+        logger.error("", e);
+        logger.error(info, parameters);
+    }
+
+    public static void debug(Logger logger, String info, Object... parameters) {
+        logger.debug(info, parameters);
+    }
+}

+ 6 - 0
src/main/resources/application-dev.yml

@@ -11,3 +11,9 @@ spring:
 jwt:
   header: Authorization
   secret: UenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRW
+
+logging:
+  file:
+    name: /app/eval.log
+  level:
+    root: info

+ 1 - 2
src/test/java/com/seecoder/dataanalysis/DataAnalysisApplicationTests.java

@@ -15,7 +15,6 @@ import com.seecoder.dataanalysis.data.entity.eval.EvalExamRecord;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.data.mongodb.core.MongoTemplate;
 
 import java.util.*;
 
@@ -94,7 +93,7 @@ class DataAnalysisApplicationTests {
 
     @Test
     void saveDevcloudInfo(){
-        BugInfo bugInfo = new BugInfo(1, "一般", "数据入库问题", "无法讲新帖子写入数据库", 1, "FINISHED");
+        BugInfo bugInfo = new BugInfo(1, 1, "一般", "数据入库问题", "无法讲新帖子写入数据库", 1, "FINISHED");
         List<BugInfo> bugInfos = new ArrayList<>();
         bugInfos.add(bugInfo);
         DevcloudInfo devcloudInfo = new DevcloudInfo(1, bugInfos, null, null, null, null);