From 2e22fbee6e67abe0aecceb5c61479a0e15eca456 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Wed, 10 Jan 2024 12:28:55 +0800 Subject: [PATCH] rev:lucene --- acs/nladmin-system/.gitignore | 2 + acs/nladmin-system/nlsso-server/pom.xml | 5 + .../run/OneNDCSocketConnectionAutoRun.java | 2 +- .../agv/xg_agv/XgagvDeviceDriver.java | 9 +- .../lnsh_station/LnshStationDeviceDriver.java | 2 +- .../nl/config/lucene/DynamicLogAppender.java | 50 ----- .../org/nl/config/lucene/DynamicLogger.java | 46 ---- .../java/org/nl/config/lucene/Indexer.java | 184 ---------------- .../nl/config/lucene/LuceneIndexWriter.java | 60 ------ .../config/lucene/LuceneServiceAutoRun.java | 88 -------- .../java/org/nl/config/lucene/Searcher.java | 146 ------------- .../org/nl/config/lucene/StaticConfig.java | 23 -- .../java/org/nl/config/lucene/UrlConfig.java | 13 -- .../lucene/config/AsyncLuceneAppender.java | 43 ++++ .../lucene/config/LogMessageConstant.java | 80 +++++++ .../config/lucene/config/LuceneAppender.java | 133 ++++++++++++ .../lucene/config/LuceneProperties.java | 23 ++ .../config/LucenePropertyAndEncoder.java | 38 ++++ .../org/nl/config/lucene/config/Property.java | 44 ++++ .../nl/config/lucene/enums/LogTypeEnum.java | 15 ++ .../lucene/rest}/LuceneController.java | 9 +- .../service}/LuceneExecuteLogService.java | 7 +- .../lucene/service}/LuceneService.java | 3 +- .../lucene/service/dto/LuceneLogDto.java | 106 ++++++++++ .../impl/LuceneExecuteLogServiceImpl.java | 51 +++++ .../service/impl/LuceneServiceImpl.java | 127 +++++++++++ .../service/lucene/LuceneDefaultAppender.java | 27 --- .../service/lucene/dto/LuceneLogDto.java | 126 ----------- .../impl/LuceneExecuteLogServiceImpl.java | 113 ---------- .../lucene/impl/LuceneServiceImpl.java | 46 ---- .../service/menu/impl/SysMenuServiceImpl.java | 2 +- .../main/resources/config/application-dev.yml | 9 +- .../src/main/resources/config/application.yml | 3 +- .../main/resources/log/XgAgvDeviceDriver.xml | 18 +- .../src/main/resources/logback-spring.xml | 171 ++++++--------- .../src/views/monitor/lucene/index.vue | 152 ++------------ .../src/views/monitor/lucene/search.vue | 197 ++++++------------ .../src/views/monitor/lucene/time.vue | 12 +- 38 files changed, 855 insertions(+), 1330 deletions(-) delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneServiceAutoRun.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/AsyncLuceneAppender.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LogMessageConstant.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneProperties.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LucenePropertyAndEncoder.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/Property.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/enums/LogTypeEnum.java rename acs/nladmin-system/nlsso-server/src/main/java/org/nl/{system/controller/lucence => config/lucene/rest}/LuceneController.java (88%) rename acs/nladmin-system/nlsso-server/src/main/java/org/nl/{system/service/lucene => config/lucene/service}/LuceneExecuteLogService.java (79%) rename acs/nladmin-system/nlsso-server/src/main/java/org/nl/{system/service/lucene => config/lucene/service}/LuceneService.java (80%) create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneExecuteLogServiceImpl.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java delete mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java diff --git a/acs/nladmin-system/.gitignore b/acs/nladmin-system/.gitignore index 54ef48a..396a121 100644 --- a/acs/nladmin-system/.gitignore +++ b/acs/nladmin-system/.gitignore @@ -9,3 +9,5 @@ */application-dev.yml nlsso-server/src/main/java/org/nl/common/constant/ nlsso-server/src/main/java/org/nl/common/core/ +/C:* +/D:* \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/pom.xml b/acs/nladmin-system/nlsso-server/pom.xml index f05cb67..7a84df1 100644 --- a/acs/nladmin-system/nlsso-server/pom.xml +++ b/acs/nladmin-system/nlsso-server/pom.xml @@ -46,6 +46,11 @@ + + com.yomahub + tlog-all-spring-boot-starter + 1.5.0 + org.apache.lucene lucene-core diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index 0ee34ca..6908f90 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -16,7 +16,7 @@ import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; -import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.system.service.param.ISysParamService; import org.nl.config.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java index 8eca66d..69995da 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java @@ -25,8 +25,8 @@ import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; -import org.nl.system.service.lucene.LuceneExecuteLogService; -import org.nl.system.service.lucene.dto.LuceneLogDto; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -183,10 +183,9 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device cancle_navigation = this.itemProtocol.getCancle_navigation(); drum_run_status = this.itemProtocol.getDrum_run_status(); stop = this.itemProtocol.getStop(); - if (home_relocation != last_home_relocation) { - luceneExecuteLogService.deviceExecuteLog( - new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.to_home_relocation, this.last_home_relocation, this.home_relocation)); +// luceneExecuteLogService.deviceExecuteLog( +// new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.to_home_relocation, this.last_home_relocation, this.home_relocation)); } if (stop != last_stop) { diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/lnsh_station/LnshStationDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/lnsh_station/LnshStationDeviceDriver.java index 070c61c..9dcb429 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/lnsh_station/LnshStationDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/lnsh_station/LnshStationDeviceDriver.java @@ -25,7 +25,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.config.SpringContextHolder; -import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.config.lucene.service.LuceneExecuteLogService; import java.lang.reflect.Method; import java.util.*; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java deleted file mode 100644 index aa920a5..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.nl.config.lucene; - -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.encoder.PatternLayoutEncoder; -import ch.qos.logback.core.rolling.RollingFileAppender; -import ch.qos.logback.core.rolling.TimeBasedRollingPolicy; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.nio.charset.Charset; - -public class DynamicLogAppender { - /** - * 通过传入的动态名字,动态设置appender - * @param dynamicName - * @return - */ - public RollingFileAppender getAppender(String oldLogPath,String dynamicName) { - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - RollingFileAppender appender = new RollingFileAppender(); - //appender的name属性 - appender.setName(dynamicName); - appender.setContext(context); - - //设置文件名 - appender.setFile(new File(oldLogPath, dynamicName + "\\" + DateUtil.format(new DateTime(),"yyyy-MM-dd")+".log").getAbsolutePath()); - //设置日志文件输出格式 - PatternLayoutEncoder encoder = new PatternLayoutEncoder(); - encoder.setContext(context); - encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); - encoder.setCharset(Charset.forName("UTF-8")); - encoder.start(); - - //设置日志记录器的滚动策略 - TimeBasedRollingPolicy policy = new TimeBasedRollingPolicy(); - policy.setFileNamePattern(oldLogPath+dynamicName+".%d{yyyy-MM-dd}.log"); - //设置父节点是appender - policy.setParent(appender); - policy.setContext(context); - policy.start(); - - //加入下面两个节点 - appender.setRollingPolicy(policy); - appender.setEncoder(encoder); - appender.start(); - return appender; - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java deleted file mode 100644 index aa402a8..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.nl.config.lucene; - -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.core.rolling.RollingFileAppender; -import org.slf4j.LoggerFactory; - -import java.util.HashMap; -import java.util.Map; - -public class DynamicLogger { - /** - * 日志存储路径 - */ - String logPath; - public DynamicLogger(String logPath) { - this.logPath = logPath; - } - - /** - * 对外暴露日志对象:每次拿的对象从内存里拿,没有再构建 - */ - private static Map container = new HashMap<>(); - public Logger getLogger(String dynamicName) { - Logger logger = container.get(dynamicName); - if(logger != null) { - return logger; - } - logger = build(dynamicName); - container.put(dynamicName,logger); - return logger; - } - - /** - * 构建Logger对象,给Logger指定appender - * @param dynamicName - * @return - */ - private Logger build(String dynamicName) { - RollingFileAppender runTaskAppender =new DynamicLogAppender().getAppender(this.logPath,dynamicName); - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - Logger logger = context.getLogger(dynamicName); - logger.addAppender(runTaskAppender); - return logger; - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java deleted file mode 100644 index 350942c..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.nl.config.lucene;//package org.nl.config.lucene; -// -//import com.alibaba.fastjson.JSONObject; -//import org.apache.commons.io.FileUtils; -//import org.apache.lucene.analysis.Analyzer; -//import org.apache.lucene.document.Document; -//import org.apache.lucene.document.Field; -//import org.apache.lucene.document.TextField; -//import org.apache.lucene.index.IndexWriter; -//import org.apache.lucene.index.IndexWriterConfig; -//import org.apache.lucene.store.Directory; -//import org.apache.lucene.store.FSDirectory; -//import org.springframework.beans.factory.annotation.Value; -//import org.wltea.analyzer.lucene.IKAnalyzer; -// -//import java.io.BufferedReader; -//import java.io.File; -//import java.io.FileReader; -//import java.io.IOException; -//import java.nio.file.Paths; -//import java.util.Set; -// -///** -// * lucene索引器 -// */ -//public class Indexer { -// /** -// * 写索引实例 -// */ -// private IndexWriter writer; -// -// public IndexWriter getWriter() { -// return writer; -// } -// -// /** -// * 构造方法,实例化IndexWriter -// * -// * @param indexDir -// * @throws Exception -// */ -// public Indexer(String indexDir) throws Exception { -// Directory dir = FSDirectory.open(Paths.get(indexDir)); -// //标准分词器,会自动去掉空格啊,is a the等单词 -//// Analyzer analyzer = new StandardAnalyzer(); -// Analyzer analyzer = new IKAnalyzer(); -// //将标准分词器配到写索引的配置中 -// IndexWriterConfig config = new IndexWriterConfig(analyzer); -// //实例化写索引对象 -// writer = new IndexWriter(dir, config); -// } -// -// /** -// * 索引指定目录下的所有文件 -// * -// * @param dataDir -// * @return -// * @throws Exception -// */ -// public int indexAll(String dataDir) throws Exception { -// // 获取该路径下的所有文件 -// File[] files = new File(dataDir).listFiles(); -// if (null != files) { -// for (File file : files) { -// //调用下面的indexFile方法,对每个文件进行索引 -// indexFile(file); -// } -// } -// //返回索引的文件数 -//// return writer.numDocs(); -// return writer.numRamDocs(); -// } -// -// /** -// * 索引指定的文件 -// * -// * @param file -// * @throws Exception -// */ -// private void indexFile(File file) throws Exception { -// System.out.println("索引文件的路径:" + file.getCanonicalPath()); -// //调用下面的getDocument方法,获取该文件的document -// Document doc = getDocument(file); -// //添加索引文档 -// //Document doc = json2Doc(jsonDoc); -//// Document doc = new Document(); -//// doc.add(new TextField("content", jsonDoc, Field.Store.YES)); -// Field fieldContent = new TextField("fieldContent", FileUtils.readFileToString(null, "UTF-8"), Field.Store.YES); -// -// //将doc添加到索引中 -// writer.addDocument(doc); -// } -// -// /** -// * 获取文档,文档里再设置每个字段,就类似于数据库中的一行记录 -// * -// * @param file -// * @return -// * @throws Exception -// */ -// private Document getDocument(File file) throws Exception { -// Document doc = new Document(); -// //开始添加字段 -// //添加内容 -// doc.add(new TextField("contents", new FileReader(file))); -// //添加文件名,并把这个字段存到索引文件里 -// doc.add(new TextField("fileName", file.getName(), Field.Store.YES)); -// //添加文件路径 -// doc.add(new TextField("fullPath", file.getCanonicalPath(), Field.Store.YES)); -// return doc; -// } -// -// public Document json2Doc(String strDoc) { -// Document doc = new Document(); -// JSONObject jsonDoc = JSONObject.parseObject(strDoc); -// Set keys = jsonDoc.keySet(); -// for (String key : keys) { -// doc.add(new TextField(key, jsonDoc.getString(key), Field.Store.YES)); -// } -// return doc; -// } -// -// public void addLogIndex(String msg) throws IOException { -// //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存 -// Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath()); -// //步骤二:创建一个IndexWriter对象,用于写索引 -//// Analyzer analyzer = new StandardAnalyzer(); -// IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false))); -//// indexWriter.deleteAll();//清理所有索引库 -//// IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer())); -// //记录索引开始时间 -// long startTime = System.currentTimeMillis(); -// //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象 -// Document document = new Document(); -//// document.add(new TextField("fieldContent", device_id, Field.Store.YES)); -// document.add(new TextField("fieldContent", msg, Field.Store.YES)); -// indexWriter.addDocument(document); -// //记录索引结束时间 -// long endTime = System.currentTimeMillis(); -// System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒"); -// indexWriter.commit(); -// //步骤八:关闭资源 -// indexWriter.close(); -// System.out.println("建立索引成功-----关闭资源"); -// } -// -// //系统的日志文件路径 -// @Value("${logging.file.path}") -// private String logUrl; -// -// public static void main(String[] args) throws IOException { -// //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存 -// Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath()); -// //步骤二:创建一个IndexWriter对象,用于写索引 -//// Analyzer analyzer = new StandardAnalyzer(); -// IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false))); -// -// indexWriter.deleteAll();//清理所有索引库 -//// indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer())); -// //记录索引开始时间 -// long startTime = System.currentTimeMillis(); -// //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象 -// File file = new File("D:\\testlog"); -// //步骤四:获取文件列表 -// File[] files = file.listFiles(); -// for (File item : files) { -// BufferedReader bufferedReader = new BufferedReader(new FileReader(item)); -// String strLine = null; -// while (null != (strLine = bufferedReader.readLine())) { -// Document document = new Document(); -//// document.add(new Field()); -// document.add(new TextField("fieldContent", strLine, Field.Store.YES)); -// indexWriter.addDocument(document); -// } -// } -// //记录索引结束时间 -// long endTime = System.currentTimeMillis(); -// System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒"); -// indexWriter.commit(); -// //步骤八:关闭资源 -// indexWriter.close(); -// System.out.println("建立索引成功-----关闭资源"); -// } -//} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java deleted file mode 100644 index c56f675..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.nl.config.lucene;//package org.nl.config.lucene; -// -//import cn.hutool.core.date.DateUtil; -//import org.apache.lucene.index.CorruptIndexException; -//import org.apache.lucene.index.IndexWriter; -//import org.apache.lucene.index.IndexWriterConfig; -//import org.apache.lucene.store.Directory; -//import org.apache.lucene.store.FSDirectory; -//import org.wltea.analyzer.lucene.IKAnalyzer; -// -//import java.io.File; -//import java.io.IOException; -//import java.text.ParseException; -//import java.text.SimpleDateFormat; -//import java.util.Date; -// -//public class LuceneIndexWriter { -// private static IndexWriter indexWriter; -// -// static { -// try { -// Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath()); -// IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); -// indexWriter = new IndexWriter(directory, config); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ -// Runtime.getRuntime().addShutdownHook(new Thread(() -> { -// try { -// closeIndexWriter(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// })); -// } -// /**在线程结束时,自动关闭IndexWriter*/ -// public static IndexWriter getIndexWriter() { -// return indexWriter; -// } -// /**关闭IndexWriter -// * @throws IOException -// * @throws CorruptIndexException */ -// public static void closeIndexWriter() throws Exception { -// if(indexWriter != null) { -// indexWriter.close(); -// } -// } -// -// public static void main(String[] args) throws IOException { -// indexWriter.deleteAll(); -// } -// -// public static String getDate(String timeString) throws ParseException { -// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 -// Date date = sdf.parse(timeString); -// timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 -// return timeString; -// } -//} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneServiceAutoRun.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneServiceAutoRun.java deleted file mode 100644 index 961b33a..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneServiceAutoRun.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.nl.config.lucene; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSON; -import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.nl.acs.AcsConfig; -import org.nl.acs.auto.run.AbstractAutoRunnable; -import org.nl.system.service.param.ISysParamService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.wltea.analyzer.lucene.IKAnalyzer; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - - -@Slf4j -@Component -public class LuceneServiceAutoRun extends AbstractAutoRunnable { - @Autowired - private ISysParamService paramService; - - public LuceneServiceAutoRun() { - } - - @Override - public String getCode() { - return LuceneServiceAutoRun.class.getSimpleName(); - } - - @Override - public String getName() { - return "Lucene索引服务"; - } - - private static volatile IndexWriter indexWriter; - - @Override - public void autoRun() throws IOException { - try { - String luceneUrl = paramService.findByCode(AcsConfig.LUCENEURL).getValue(); - Directory directory = FSDirectory.open(new File(luceneUrl).toPath()); - IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); - indexWriter = new IndexWriter(directory, config); - } catch (Exception e) { - log.error("Lucene索引服务出现异常:{}", JSON.toJSONString(e)); - if (ObjectUtil.isNotEmpty(indexWriter)) { - indexWriter.close(); - } - } - } - /**在线程结束时,会自动关闭IndexWriter*/ - public static IndexWriter getIndexWriter() { - return indexWriter; - } - - @Override - public void stop() { - super.after(); - try { - indexWriter.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void main(String[] args) throws IOException { - indexWriter.deleteAll(); - } - - public static String getDate(String timeString) throws ParseException { - //时间格式 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); - Date date = sdf.parse(timeString); - //格式化后的时间 - timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS"); - return timeString; - } - -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java deleted file mode 100644 index f48c586..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.nl.config.lucene; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.document.Document; -import org.apache.lucene.index.DirectoryReader; -import org.apache.lucene.index.IndexReader; -import org.apache.lucene.index.Term; -import org.apache.lucene.search.*; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.apache.lucene.util.BytesRef; - -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; - -/** - * lucene查询器 - */ -@Slf4j -public class Searcher { - - public static Map search(String indexDir, String ext,Map whereJson) throws Exception { - //获取要查询的路径,也就是索引所在的位置 - Directory dir = FSDirectory.open(Paths.get(indexDir)); - IndexReader reader = DirectoryReader.open(dir); - //构建IndexSearcher - IndexSearcher searcher = new IndexSearcher(reader); - //标准分词器,会自动去掉空格啊,is a the等单词 -// Analyzer analyzer = new StandardAnalyzer(); -// Analyzer analyzer = new IKAnalyzer(false); - //查询解析器 -// QueryParser queryParser = new QueryParser("fieldContent", analyzer); - - //记录索引开始时间 - long startTime = System.currentTimeMillis(); - // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数: - // 每页条数 - int pageSize = Integer.parseInt(whereJson.get("size").toString()); - // 当前页码 - int pageNum = Integer.parseInt(whereJson.get("page").toString()); - // 当前页的起始条数 - int start = pageNum * pageSize; - // 当前页的结束条数(不能包含) - int end = start + pageSize; - // 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序 - Sort sort = new Sort(new SortField("logTime", SortField.Type.DOC,true)); - - TopDocs docs = null; - BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); - //时间范围查询 - String startDate = (String) whereJson.get("begin_time"); - String endDate = (String) whereJson.get("end_time"); - Calendar calendar=Calendar.getInstance(); - calendar.set(1970, 0, 1); - if (startDate == null){ - startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); - }else{ - startDate = LuceneServiceAutoRun.getDate(startDate); - } - if (endDate == null){ - endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); - } else { - endDate = LuceneServiceAutoRun.getDate(endDate); - } - TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); - booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST); - if (whereJson.get("device_code") != null){ - Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); - } - if (whereJson.get("method") != null){ - Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); - } - if (whereJson.get("status_code") != null){ - Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code"))); - booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); - } - if (whereJson.get("requestparam") != null){ - WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*")); - booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); - } - if (whereJson.get("responseparam") != null){ - WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*")); - booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); - } - if (whereJson.get("blurry") != null) { - WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); - booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); - } - docs = searcher.search(booleanQueryBuilder.build(), end,sort); - //记录索引时间 - long endTime = System.currentTimeMillis(); - log.info("匹配{}共耗时{}毫秒",booleanQueryBuilder.build(),(endTime-startTime)); - log.info("查询到{}条日志文件", docs.totalHits.value); - List list = new ArrayList<>(); - ScoreDoc[] scoreDocs = docs.scoreDocs; - if (end > docs.totalHits.value) { - end = (int) docs.totalHits.value; - } - JSONArray array = new JSONArray(); - - for (int i = start; i < end; i++) { - ScoreDoc scoreDoc = scoreDocs[i]; - Document doc = reader.document(scoreDoc.doc); - JSONObject object = new JSONObject(); - object.put("content",doc.get("fieldContent")); - object.put("device_code",doc.get("device_code")); - object.put("logTime",doc.get("logTime")); - object.put("method",doc.get("method")); - object.put("status_code",doc.get("status_code")); - object.put("requestparam",doc.get("requestparam")); - object.put("responseparam",doc.get("responseparam")); - if(doc.get("fieldContent") != null) { - array.add(object); - } - } - for(Object logDto:array){ - log.info(logDto.toString()); - } - reader.close(); - JSONObject jo = new JSONObject(); - jo.put("content", array); - jo.put("totalElements", docs.totalHits.value); - return jo; - } - - public static void main(String[] args) { - String indexDir = "D:\\lucene\\index"; - //查询这个字符串 - String q = "07.832"; - Map whereJson = null; - try { - search(indexDir, q,whereJson); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java deleted file mode 100644 index a118b49..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.nl.config.lucene; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @deprecated 设置静态参数初始化 - */ -@Configuration -public class StaticConfig { - /** - * 日志索引目录 - */ - @Value("${lucene.index.path}") - private String luceneDir; - - @Bean - public int initStatic() { - UrlConfig.setLuceneUrl(luceneDir); - return 0; - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java deleted file mode 100644 index dd7ce01..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.nl.config.lucene; - -public class UrlConfig { - public static String luceneUrl; - - public static String getLuceneUrl() { - return luceneUrl; - } - - public static void setLuceneUrl(String luceneUrl) { - UrlConfig.luceneUrl = luceneUrl; - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/AsyncLuceneAppender.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/AsyncLuceneAppender.java new file mode 100644 index 0000000..d5156de --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/AsyncLuceneAppender.java @@ -0,0 +1,43 @@ +package org.nl.config.lucene.config; +/** + * @author ldjun + * @version 1.0 + * @date 2023年08月24日 13:00 + * @desc desc + */ + +import ch.qos.logback.classic.spi.ILoggingEvent; +import cn.hutool.core.util.IdUtil; +import com.yomahub.tlog.core.context.AspectLogContext; +import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; + +import java.util.Map; + +public class AsyncLuceneAppender extends AspectLogbackAsyncAppender { + + + @Override + protected void append(ILoggingEvent event) { + String traceId = AspectLogContext.getLogValue(); + if (StringUtils.isEmpty(traceId)){ + traceId = IdUtil.nanoId()+"@"; + AspectLogContext.putLogValue(traceId); + }else { + if (!traceId.contains("@")){ + AspectLogContext.putLogValue(traceId+"@"); + } + } + if (StringUtils.isNotEmpty(traceId)){ + MDC.put("traceId",traceId); + Map mdcPropertyMap = event.getMDCPropertyMap(); + if (mdcPropertyMap.getClass().getName().contains("SynchronizedMap")){ + mdcPropertyMap.put("traceId",traceId); + } + MDC.clear(); + } + super.append(event); + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LogMessageConstant.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LogMessageConstant.java new file mode 100644 index 0000000..22d242e --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LogMessageConstant.java @@ -0,0 +1,80 @@ +package org.nl.config.lucene.config; + +/** + * @Author: lyd + * @Description: 定义lucene相关常量 + * @Date: 2023/8/25 + */ +public class LogMessageConstant { + /** + * + */ + public final static String SORT_NAME = "time"; + /** + * 级别 + */ + public final static String FIELD_LEVEL = "level"; + /** + * 时间 + */ + public final static String FIELD_TIMESTAMP = "timestamp"; + /** + * 类的限定名 + */ + public final static String FIELD_CLASS_NAME = "logger"; + /** + * 线程名 + */ + public final static String FIELD_THREAD = "thread"; + /** + * 日志内容 + */ + public final static String FIELD_MESSAGE = "message"; + public final static String FIELD_TRACEID = "tlogTraceId"; + // 定义颜色值 + /** + * 文本颜色:黑色 + */ + public final static String COLOR_BLACK = "\u001B[30m"; + /** + * 文本颜色:红色 + */ + public final static String COLOR_RED = "\u001B[31m"; + /** + * 文本颜色:绿色 + */ + public final static String COLOR_GREEN = "\u001B[32m"; + /** + * 文本颜色:黄色 + */ + public final static String COLOR_YELLOW = "\u001B[33m"; + /** + * 文本颜色:蓝色 + */ + public final static String COLOR_BLUE = "\u001B[34m"; + /** + * 文本颜色:品红色 + */ + public final static String COLOR_MAGENTA = "\u001B[35m"; + /** + * 文本颜色:青色 + */ + public final static String COLOR_CYAN = "\u001B[36m"; + /** + * 文本颜色:白色 + */ + public final static String COLOR_WHITE = "\u001B[37m"; + /** + * 文本颜色重置 + */ + public final static String COLOR_RESET = "\u001B[0m"; + /** + * 背景颜色:黄色 + */ + public final static String BACKGROUND_YELLOW = "\u001B[43m"; + /** + * 索引路径 + */ + public final static String INDEX_DIR = "D:\\lucene\\index"; + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java new file mode 100644 index 0000000..734537b --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java @@ -0,0 +1,133 @@ +package org.nl.config.lucene.config; +/** + * @author ldjun + * @version 1.0 + * @date 2023年08月24日 13:00 + * @desc desc + */ + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.AppenderBase; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.ttl.TransmittableThreadLocal; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.NumericDocValuesField; +import org.apache.lucene.document.StringField; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.FSDirectory; +import org.nl.config.lucene.service.dto.LuceneLogDto; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.wltea.analyzer.lucene.IKAnalyzer; + +import java.io.IOException; +import java.nio.file.Paths; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +public class LuceneAppender extends AppenderBase { + + public static final TransmittableThreadLocal traceIdTL = new TransmittableThreadLocal(); + public LuceneProperties properties; + public static Directory index; + private List encoders; + public static IndexWriter indexWriter; + + + @Override + public void start() { + super.start(); + try { + init(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void init() throws IOException { + Resource resource = new ClassPathResource("config/application.yml"); + YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + yamlPropertiesFactoryBean.setResources(resource); + Properties properties = yamlPropertiesFactoryBean.getObject(); + // 获取配置值 + String luceneDir = properties.getProperty("lucene.index.path"); + System.out.println("---index地址----" + luceneDir); + index = FSDirectory.open(Paths.get(luceneDir)); + // 初始化 Lucene 索引 + Analyzer analyzer = new IKAnalyzer(); + IndexWriterConfig config = new IndexWriterConfig(analyzer); + indexWriter = new IndexWriter(index, config); + } + + + @Override + protected void append(ILoggingEvent event) { + String message = event.getFormattedMessage(); + String[] split = message.split("@"); + LuceneLogDto luceneLogDto = JSONObject.parseObject(split[1], LuceneLogDto.class); + Document document = new Document(); + try { + //向document对象中添加域。 + Map mdcPropertyMap = event.getMDCPropertyMap(); + String traceId = mdcPropertyMap.get("traceId"); + System.out.println("---追踪号---"+traceId); + if (ObjectUtil.isNotEmpty(traceId)) { + document.add(new StringField("trace_id", traceId, Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { + document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { + document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getMethod())) { + document.add(new StringField("method", luceneLogDto.getMethod(), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus_code())) { + document.add(new StringField("status_code", luceneLogDto.getStatus_code(), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestparam())) { + document.add(new StringField("requestparam", luceneLogDto.getRequestparam(), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseparam())) { + document.add(new StringField("responseparam", luceneLogDto.getResponseparam(), Field.Store.YES)); + } + document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); + document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); + document.add(new NumericDocValuesField("logTime",System.currentTimeMillis()));//排序 + + try { + indexWriter.addDocument(document); + indexWriter.commit(); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (Exception e) { + return; + } + } + + @Override + public void stop() { + super.stop(); + try { + indexWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void setProperties(LuceneProperties properties) { + this.properties = properties; + + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneProperties.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneProperties.java new file mode 100644 index 0000000..c194fb3 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneProperties.java @@ -0,0 +1,23 @@ +package org.nl.config.lucene.config; + + +import java.util.ArrayList; +import java.util.List; + +public class LuceneProperties { + + private List properties; + + public LuceneProperties() { + this.properties = new ArrayList(); + } + + public List getProperties() { + return properties; + } + + public void addProperty(Property property) { + properties.add(property); + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LucenePropertyAndEncoder.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LucenePropertyAndEncoder.java new file mode 100644 index 0000000..53c8fdb --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LucenePropertyAndEncoder.java @@ -0,0 +1,38 @@ +package org.nl.config.lucene.config; + +import ch.qos.logback.classic.PatternLayout; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.Context; +import ch.qos.logback.core.pattern.PatternLayoutBase; + +/* + * @author ZZQ + * @Date 2023/12/22 18:11 + */ +public class LucenePropertyAndEncoder { + + private Property property; + + private PatternLayoutBase layout = new PatternLayout(); + + public LucenePropertyAndEncoder(Property property, Context context) { + this.property = property; + this.layout.setContext(context); + this.layout.setPattern(String.valueOf(property.getValue())); + this.layout.setPostCompileProcessor(null); + this.layout.start(); + } + + public String encode(ILoggingEvent event) { + return layout.doLayout(event); + } + + public String getName() { + return property.getName(); + } + + public boolean allowEmpty() { + return property.isAllowEmpty(); + } +} + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/Property.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/Property.java new file mode 100644 index 0000000..f7e58e8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/Property.java @@ -0,0 +1,44 @@ +package org.nl.config.lucene.config; + +/* + * @author ZZQ + * @Date 2023/12/26 15:30 + */ +public class Property { + private String name; + private String value; + private boolean allowEmpty; + + public Property() { + } + + public Property(String name, String value, boolean allowEmpty) { + this.name = name; + this.value = value; + this.allowEmpty = allowEmpty; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public boolean isAllowEmpty() { + return allowEmpty; + } + + public void setAllowEmpty(boolean allowEmpty) { + this.allowEmpty = allowEmpty; + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/enums/LogTypeEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/enums/LogTypeEnum.java new file mode 100644 index 0000000..1834a78 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/enums/LogTypeEnum.java @@ -0,0 +1,15 @@ +package org.nl.config.lucene.enums; + +public enum LogTypeEnum { + DEVICE_LOG("设备日志"), + INTERFACE_LOG("接口日志"); + + private String desc; + + LogTypeEnum(String desc) { + this.desc = desc; + } + public String getDesc() { + return desc; + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java similarity index 88% rename from acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java rename to acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java index 3de1307..633a6db 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java @@ -1,11 +1,11 @@ -package org.nl.system.controller.lucence; +package org.nl.config.lucene.rest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.logging.annotation.Log; -import org.nl.system.service.lucene.LuceneService; +import org.nl.config.lucene.service.LuceneService; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.Map; + @RestController @RequiredArgsConstructor @Api(tags = "日志检索") @@ -25,10 +26,12 @@ public class LuceneController { private final LuceneService luceneService; + + @GetMapping("/getAll") @Log("日志检索") @ApiOperation("日志检索") - + //@PreAuthorize("@el.check('task:list')") public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK); } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneExecuteLogService.java similarity index 79% rename from acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java rename to acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneExecuteLogService.java index cd2f571..7248923 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneExecuteLogService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneExecuteLogService.java @@ -1,8 +1,7 @@ -package org.nl.system.service.lucene; +package org.nl.config.lucene.service; -import org.nl.system.service.lucene.dto.LuceneLogDto; -import java.io.IOException; +import org.nl.config.lucene.service.dto.LuceneLogDto; public interface LuceneExecuteLogService { /** @@ -26,7 +25,7 @@ public interface LuceneExecuteLogService { * * @param luceneLogDto 日志结果对象 */ - void interfaceExecuteLog(LuceneLogDto luceneLogDto) throws IOException; + void interfaceExecuteLog(LuceneLogDto luceneLogDto); /** * 设备执行日志,会保留历史记录 diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java similarity index 80% rename from acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java rename to acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java index 96560e8..1eae1d5 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java @@ -1,6 +1,5 @@ -package org.nl.system.service.lucene; +package org.nl.config.lucene.service; -import com.alibaba.fastjson.JSONArray; import org.springframework.data.domain.Pageable; import java.util.Map; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java new file mode 100644 index 0000000..cad7e91 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java @@ -0,0 +1,106 @@ +package org.nl.config.lucene.service.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LuceneLogDto { + + /* 日志标识 */ + private String log_uuid; + /*日志类型*/ + private String logType; + /*设备编号*/ + private String device_code; + /*内容详情*/ + private String content; + + /* 任务编码 */ + private String task_code; + + /* 指令编码 */ + private String instruct_code; + + /* 任务标识 */ + private String task_id; + + /* 载具号 */ + private String vehicle_code; + + /* 备注 */ + private String remark; + + /* 日志类型 */ + private String log_type; + + /* 方法 */ + private String method; + + /* 请求参数 */ + private String requestparam; + + /* 响应参数 */ + private String responseparam; + + /* 请求地址 */ + private String requesturl; + + /* 状态码 */ + private String status_code; + + /* 是否删除 1:是;0:否 */ + private String is_delete; + + /* 创建者 */ + private String create_by; + + /* 创建时间 YYYY-MM-DD hh:mm:ss */ + private String create_time; + + /* 修改者 */ + private String update_by; + + /* 修改时间 */ + private String update_time; + + + public LuceneLogDto(final String opc_server_code, final String opc_plc_code, + final String device_code, final String to_home, final String last_home, + final String home) { + super(); + this.device_code = device_code; + this.content = "信号 [" + + opc_server_code + "." + + opc_plc_code + "." + + device_code + "." + + to_home + "] 发生变更 " + + last_home + " -> " + + home; + } + + public LuceneLogDto(final String device_code, final String remark) { + super(); + this.device_code = device_code; + this.content = "设备 [" + + device_code + + "] - " + + remark; + } + + public LuceneLogDto(final LuceneLogDto dto) { + super(); + this.device_code = device_code; + this.method = method; + + this.content = "设备 [" + + device_code + + "] - " + + remark; + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneExecuteLogServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneExecuteLogServiceImpl.java new file mode 100644 index 0000000..fdc9d03 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneExecuteLogServiceImpl.java @@ -0,0 +1,51 @@ +package org.nl.config.lucene.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.lucene.enums.LogTypeEnum; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; +import org.slf4j.MDC; +import org.springframework.stereotype.Service; + +/** + * @author jlm + * @description 服务实现 + * @date 2023-04-11 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { + + @Override + public void deviceItemValue(String device_code, String key, String value) { + String now = DateUtil.now(); + } + + @Override + public void deviceExecuteLog(LuceneLogDto luceneLogDto) { + luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); + log.info("{}", JSON.toJSONString(luceneLogDto)); + } + + @Override + public void interfaceExecuteLog(LuceneLogDto luceneLogDto) { + luceneLogDto.setLogType(LogTypeEnum.INTERFACE_LOG.getDesc()); + log.info("{}", JSON.toJSONString(luceneLogDto)); + } + + @Override + public void extLog(String name, String message) { + try { + MDC.put(name, name); + log.info("{}", message); + } catch (Exception e) { + e.printStackTrace(); + } finally { + MDC.remove(name); + } + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java new file mode 100644 index 0000000..8a11d09 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java @@ -0,0 +1,127 @@ +package org.nl.config.lucene.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.lucene.document.Document; +import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.*; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.BytesRef; +import org.nl.config.lucene.service.LuceneService; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.nio.file.Paths; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + + +@Service +@RequiredArgsConstructor +@Slf4j +public class LuceneServiceImpl implements LuceneService { + + //日志索引目录 + + + @Override + public Map getAll(Map whereJson, Pageable page) { + //获取要查询的路径,也就是索引所在的位置 + try { + FSDirectory directory = FSDirectory.open(Paths.get("C:\\acs\\lucene\\index")); + DirectoryReader open = DirectoryReader.open(directory); + IndexSearcher searcher = new IndexSearcher(open); + // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数: + int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数 + int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码 + + BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); + //时间范围查询 + String startDate = (String) whereJson.get("begin_time"); + String endDate = (String) whereJson.get("end_time"); + + if (startDate == null){ + Calendar calendar=Calendar.getInstance(); + calendar.set(1970, 0, 1); + startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + }else{ + startDate = getDate(startDate); + } + if (endDate == null){ + endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + } else { + endDate = getDate(endDate); + } + TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); + booleanQueryBuilder.add(termRangeQuery, BooleanClause.Occur.MUST); + if (whereJson.get("device_code") != null){ + Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("method") != null){ + Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("status_code") != null){ + Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("requestparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("responseparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("blurry") != null) { + WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); + booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); + } + + TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG,true)), 20000, 0); + searcher.search(booleanQueryBuilder.build(), collector); + TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize); + int totalSize = collector.getTotalHits(); + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + + List list = new ArrayList<>(); + for (ScoreDoc scoreDoc : scoreDocs) { + Document doc = open.document(scoreDoc.doc); + JSONObject object = new JSONObject(); + object.put("content",doc.get("fieldContent")); + object.put("device_code",doc.get("device_code")); + object.put("logTime",doc.get("logTime")); + object.put("method",doc.get("method")); + object.put("status_code",doc.get("status_code")); + object.put("requestparam",doc.get("requestparam")); + object.put("responseparam",doc.get("responseparam")); + if(doc.get("fieldContent") != null) { + list.add(object); + } + } + open.close(); + directory.close(); + JSONObject jo = new JSONObject(); + jo.put("content", list); + jo.put("totalElements", totalSize); + return jo; + } catch (Exception e) { + log.error("索引查询为空", e); + throw new NullPointerException("索引查询为空"); + } + } + + public static String getDate(String timeString) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 + Date date = sdf.parse(timeString); + timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 + return timeString; + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java deleted file mode 100644 index b08b75c..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.nl.system.service.lucene; - -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.UnsynchronizedAppenderBase; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.document.StringField; -import org.apache.lucene.index.IndexWriter; -import org.nl.config.lucene.LuceneServiceAutoRun; - -/** - * @author ldjun - * @version 1.0 - * @date 2023年05月12日 9:40 - * @desc desc - */ -public class LuceneDefaultAppender extends UnsynchronizedAppenderBase { - - @Override - protected void append(ILoggingEvent eventObject) { - IndexWriter indexWriter = LuceneServiceAutoRun.getIndexWriter(); - Document document = new Document(); - document.add(new StringField("status_code", "01", Field.Store.YES)); - - } - -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java deleted file mode 100644 index cc7fabb..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.nl.system.service.lucene.dto; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class LuceneLogDto { - - /** - * 日志标识 - */ - private String log_uuid; - /** - * 日志类型 - */ - private String logType; - /** - * 设备编号 - */ - private String device_code; - /** - * 内容详情 - */ - private String content; - - /** - * 任务编码 - */ - private String task_code; - - /** - * 指令编码 - */ - private String instruct_code; - - /** - * 任务标识 - */ - private String task_id; - - /** - * 载具号 - */ - private String vehicle_code; - - /** - * 备注 - */ - private String remark; - - /** - * 日志类型 - */ - private String log_type; - - /** - * 方法 - */ - private String method; - - /** - * 请求参数 - */ - private String requestparam; - - /** - * 响应参数 - */ - private String responseparam; - - /** - * 请求地址 - */ - private String requesturl; - - /** - * 状态码 - */ - private String status_code; - - /** - * 是否删除 1:是;0:否 - */ - private String is_delete; - - /** - * 创建者 - */ - private String create_by; - - /** - * 创建时间 - */ - private String create_time; - - /** - * 修改者 - */ - private String update_by; - - /** - * 修改时间 - */ - private String update_time; - - - - public LuceneLogDto (final String opc_server_code,final String opc_plc_code, - final String device_code,final String to_home,final int last_home, - final int home) { - super (); - this.device_code = device_code; - this.content = "信号" - + opc_server_code + "." - + opc_plc_code + "." - + device_code + "." - + to_home + "变更从" - + last_home + "->" - + home; - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java deleted file mode 100644 index 312cd28..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneExecuteLogServiceImpl.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.nl.system.service.lucene.impl; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.document.StringField; -import org.apache.lucene.index.IndexWriter; -import org.nl.common.enums.LogTypeEnum; -import org.nl.config.lucene.DynamicLogger; -import org.nl.config.lucene.LuceneServiceAutoRun; -import org.nl.system.service.lucene.LuceneExecuteLogService; -import org.nl.system.service.lucene.dto.LuceneLogDto; -import org.slf4j.Logger; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import java.io.IOException; - -/** - * @author jlm - * @description 服务实现 - * @date 2023-04-11 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { - - /** - * 日志目录 - */ - @Value("${logging.file.path}") - private String logPath; - - @Override - public void deviceItemValue(String device_code, String key, String value) { - String now = DateUtil.now(); - } - - @SneakyThrows - @Override - public void deviceExecuteLog(LuceneLogDto luceneLogDto) { - luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); - addIndex(luceneLogDto); - } - - @Override - public void interfaceExecuteLog(LuceneLogDto luceneLogDto) throws IOException { - luceneLogDto.setLogType(LogTypeEnum.INTERFACE_LOG.getDesc()); - addIndex(luceneLogDto); - } - - private void addIndex(LuceneLogDto luceneLogDto) throws IOException { - IndexWriter indexWriter = LuceneServiceAutoRun.getIndexWriter(); - //创建一个Document对象 - Document document = new Document(); - try { - //记录索引开始时间 - long startTime = System.currentTimeMillis(); - //向document对象中添加域。 - if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { - document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); -// document.add(new TextField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { - document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getMethod())) { - document.add(new StringField("method", luceneLogDto.getMethod(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus_code())) { - document.add(new StringField("status_code", luceneLogDto.getStatus_code(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestparam())) { - document.add(new StringField("requestparam", luceneLogDto.getRequestparam(), Field.Store.YES)); - } - if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseparam())) { - document.add(new StringField("responseparam", luceneLogDto.getResponseparam(), Field.Store.YES)); - } - document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); - document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); - indexWriter.addDocument(document); - //记录索引结束时间 - long endTime = System.currentTimeMillis(); - indexWriter.commit(); - //实现日志文件按业务独立生成日志文件到指定路径 - DynamicLogger loggerBuilder =new DynamicLogger(logPath+"\\"+luceneLogDto.getLogType()+"\\"); - Logger logger = loggerBuilder.getLogger(luceneLogDto.getDevice_code()); -// logger.info("设备{}建立索引共耗时{}毫秒",luceneLogDto.getDevice_code(),endTime-startTime); - logger.info("{}",luceneLogDto.toString()); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - } - - @Override - public void extLog(String name, String message) { - try { - MDC.put(name, name); - log.info("{}", message); - } catch (Exception e) { - e.printStackTrace(); - } finally { - MDC.remove(name); - } - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java deleted file mode 100644 index 3bdc610..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.nl.system.service.lucene.impl; - -import cn.hutool.core.util.CharsetUtil; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.config.lucene.Searcher; -import org.nl.system.service.lucene.LuceneService; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.Map; - - -@Service -@RequiredArgsConstructor -@Slf4j -public class LuceneServiceImpl implements LuceneService { - - /** - * 日志索引目录 - */ - @Value("${lucene.index.path}") - private String luceneUrl; - - @Override - public Map getAll(Map whereJson, Pageable page) { - JSONObject jo = new JSONObject(); - try { - JSONObject jsonObject = (JSONObject) Searcher.search(luceneUrl, "", whereJson); - JSONArray array = jsonObject.getJSONArray("content"); - int totalElements = Integer.parseInt(jsonObject.get("totalElements").toString()); - jo.put("content", array); - jo.put("totalElements", totalElements); - } catch (Exception e) { - log.error("索引查询为空", e); - throw new NullPointerException("索引查询为空"); - } - - return jo; - } - -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index e7408f9..95a2edb 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -18,9 +18,9 @@ import org.nl.common.domain.vo.MenuMetaVo; import org.nl.common.domain.vo.MenuVo; import org.nl.common.utils.CopyUtil; import org.nl.config.IdUtil; +import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; -import org.nl.system.service.lucene.LuceneExecuteLogService; import org.nl.system.service.menu.dto.MenuDto; import org.nl.system.service.menu.ISysMenuService; import org.nl.system.service.menu.dao.SysMenu; diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index 432c034..dba7431 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -9,10 +9,10 @@ spring: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} # password: ${DB_PWD:Root.123456} - password: ${DB_PWD:p@ssw0rd} + password: ${DB_PWD:password} # 初始连接数 initial-size: 5 # 最小连接数 @@ -129,8 +129,11 @@ file: avatarMaxSize: 5 logging: file: - path: C:\log\wms + path: /Users/onepiece/myFile/acs_logs config: classpath:logback-spring.xml +lucene: + index: + path: /lucene # Sa-Token配置 sa-token: diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/acs/nladmin-system/nlsso-server/src/main/resources/config/application.yml index ac11b14..6b4b310 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -88,6 +88,7 @@ mybatis-plus: global-config: db-config: id-type: INPUT + lucene: index: - path: D:\lucene\index + path: C:\acs\lucene\index diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml b/acs/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml index c805802..d47c530 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml @@ -2,16 +2,15 @@ - - + ${LOG_HOME}/XgAgvDeviceDriver/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log 15 - 200MB + 100MB 2GB @@ -23,12 +22,13 @@ - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index ac3aa5d..adb1895 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -14,6 +14,11 @@ https://juejin.cn/post/6844903775631572999 + + + + + + ${log.pattern} + ${log.charset} - - + @@ -42,153 +45,103 @@ https://juejin.cn/post/6844903775631572999 20GB - - - + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - 0 - 500 + + 0 + 200 - - + + + + + 512 - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - - - - - - - - - - + - + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/acs/nladmin-ui/src/views/monitor/lucene/index.vue b/acs/nladmin-ui/src/views/monitor/lucene/index.vue index 5987c8f..03a3beb 100644 --- a/acs/nladmin-ui/src/views/monitor/lucene/index.vue +++ b/acs/nladmin-ui/src/views/monitor/lucene/index.vue @@ -1,122 +1,8 @@ diff --git a/acs/nladmin-ui/src/views/monitor/lucene/time.vue b/acs/nladmin-ui/src/views/monitor/lucene/time.vue index a8df097..36d504a 100644 --- a/acs/nladmin-ui/src/views/monitor/lucene/time.vue +++ b/acs/nladmin-ui/src/views/monitor/lucene/time.vue @@ -8,9 +8,9 @@ v-model="query.createTime" type="datetimerange" :picker-options="pickerOptions" - :range-separator="$t('monitor.lucence.until')" - :start-placeholder="$t('monitor.lucence.start_time')" - :end-placeholder="$t('monitor.lucence.end_time')" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" align="right" /> @@ -29,7 +29,7 @@ export default { return { pickerOptions: { shortcuts: [{ - text: this.$t('monitor.lucence.the_past_week'), + text: '最近一周', onClick(picker) { const end = new Date() const start = new Date() @@ -37,7 +37,7 @@ export default { picker.$emit('pick', [start, end]) } }, { - text: this.$t('monitor.lucence.the_past_month'), + text: '最近一个月', onClick(picker) { const end = new Date() const start = new Date() @@ -45,7 +45,7 @@ export default { picker.$emit('pick', [start, end]) } }, { - text: this.$t('monitor.lucence.the_past_three_months'), + text: '最近三个月', onClick(picker) { const end = new Date() const start = new Date()