LogTrackingConfig.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.seecoder.dataanalysis.config;
  2. import com.nju.edu.logTracking.LogConsumer;
  3. import com.seecoder.dataanalysis.data.dao.util.ParsingExceptionInfoDao;
  4. import com.seecoder.dataanalysis.logic.parser.LogParsingService;
  5. import com.seecoder.dataanalysis.logic.parser.ParsingException;
  6. import com.seecoder.dataanalysis.util.LoggerUtil;
  7. import com.seecoder.dataanalysis.vo.SimpleLog;
  8. import org.slf4j.Logger;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. @Configuration
  13. public class LogTrackingConfig {
  14. private static final Logger logger = LoggerUtil.getLogger(LogTrackingConfig.class);
  15. @Autowired
  16. LogParsingService logParsingService;
  17. @Autowired
  18. ParsingExceptionInfoDao parsingExceptionInfoDao;
  19. @Bean
  20. public void LogTrackingConfigurator() {
  21. //需新建LogConsumer类型的对象,实现run方法
  22. //run方法参数value为接收到的json格式的log,每次接收到log都会执行run方法
  23. LogConsumer myConsumer = new LogConsumer() {
  24. @Override
  25. public void run(String value) {
  26. try {
  27. LoggerUtil.info(logger, "get log: " + value);
  28. SimpleLog sl = logParsingService.parseLog(value);
  29. logParsingService.parseLogData(sl, true);
  30. } catch (ParsingException e) {
  31. e.printStackTrace();
  32. LoggerUtil.info(logger, e.toString());
  33. parsingExceptionInfoDao.save(e.convertToEntity());
  34. } catch (Exception e) {
  35. LoggerUtil.info(logger, e.toString());
  36. e.printStackTrace();
  37. }
  38. }
  39. };
  40. //需使用此函数以开启消费
  41. myConsumer.processLog();
  42. LoggerUtil.info(logger, "log tracking Start successfully");
  43. }
  44. }