From eb9f6f5c96be6ff6f977a4fc853a89e65b189bad Mon Sep 17 00:00:00 2001
From: ludj <ldj_willow@163.com>
Date: Fri, 26 May 2023 10:46:58 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 nladmin-system/nlsso-server/pom.xml           |   8 ++
 .../nlsso-server/src/main/java/org/Test.java  | 128 ------------------
 .../src/main/java/org/TestLucene.java         | 103 --------------
 .../service/lucene/LuceneDefaultAppender.java |   3 -
 .../src/main/resources/logback-spring.xml     |  13 +-
 5 files changed, 17 insertions(+), 238 deletions(-)
 delete mode 100644 nladmin-system/nlsso-server/src/main/java/org/Test.java
 delete mode 100644 nladmin-system/nlsso-server/src/main/java/org/TestLucene.java

diff --git a/nladmin-system/nlsso-server/pom.xml b/nladmin-system/nlsso-server/pom.xml
index c215494..5acc6d0 100644
--- a/nladmin-system/nlsso-server/pom.xml
+++ b/nladmin-system/nlsso-server/pom.xml
@@ -45,6 +45,14 @@
         </dependency>
 
 
+        <!--        日志链路追踪 https://tlog.yomahub.com/pages/f62a84/#%E5%90%8C%E6%AD%A5%E6%97%A5%E5%BF%97-->
+        <dependency>
+            <groupId>com.yomahub</groupId>
+            <artifactId>tlog-all-spring-boot-starter</artifactId>
+            <version>1.5.0</version>
+        </dependency>
+
+
         <!-- Lucence核心包 -->
         <dependency>
             <groupId>org.apache.lucene</groupId>
diff --git a/nladmin-system/nlsso-server/src/main/java/org/Test.java b/nladmin-system/nlsso-server/src/main/java/org/Test.java
deleted file mode 100644
index f47181d..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/Test.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.document.*;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.queryparser.classic.QueryParser;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.TopDocs;
-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;
-
-/**
- * @author ldjun
- * @version 1.0
- * @date 2023年05月12日 10:16
- * @desc desc
- */
-public class Test {
-    public static void main(String[] args) throws Exception {
-        createIndex();
-        searchIndex();
-    }
-
-    private static void createIndex() throws IOException {
-        //1、创建一个Director对象,指定索引库保存的位置。
-        //把索引库保存在内存中
-        //Directory directory = new RAMDirectory();
-        //把索引库保存在磁盘
-        Directory directory = FSDirectory.open(new File("E:\\lucene3").toPath());
-        //2、基于Directory对象创建一个IndexWriter对象
-        IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
-        IndexWriter indexWriter = new IndexWriter(directory, config);
-
-        //3、读取磁盘上的文件,对应每个文件创建一个文档对象。
-        File dir = new File("E:\\lucene2");
-
-
-        File[] files = dir.listFiles();
-        for (File f : files) {
-            //取文件名
-            String fileName = f.getName();
-            //文件的路径
-            String filePath = f.getPath();
-            //文件的内容
-            String fileContent = FileUtils.readFileToString(f, "utf-8");
-            //文件的大小
-            long fileSize = FileUtils.sizeOf(f);
-            //创建Field
-            //参数1:域的名称,参数2:域的内容,参数3:是否存储
-            Field fieldName = new TextField("name", fileName, Field.Store.YES);
-            Field fieldPath = new StoredField("path", filePath);
-            Field fieldContent = new TextField("content", fileContent, Field.Store.YES);
-            Field fieldSizeValue = new LongPoint("size", fileSize);
-            Field fieldSizeStore = new StoredField("size", fileSize);
-            //创建文档对象
-            Document document = new Document();
-            //向文档对象中添加域
-            document.add(fieldName);
-            document.add(fieldPath);
-            document.add(fieldContent);
-            //document.add(fieldSize);
-            document.add(fieldSizeValue);
-            document.add(fieldSizeStore);
-            //5、把文档对象写入索引库
-            indexWriter.addDocument(document);
-        }
-        //6、关闭indexwriter对象
-        indexWriter.close();
-    }
-
-    public static void searchIndex() throws Exception {
-        //1、创建一个Director对象,指定索引库的位置
-        Directory directory = FSDirectory.open(new File("E:\\lucene3").toPath());
-        //2、创建一个IndexReader对象
-        IndexReader indexReader = DirectoryReader.open(directory);
-        //3、创建一个IndexSearcher对象,构造方法中的参数indexReader对象。
-        IndexSearcher indexSearcher = new IndexSearcher(indexReader);
-        //4、创建一个Query对象,TermQuery
-//        Query query = new TermQuery(new Term("name", "123"));
-        //5、执行查询,得到一个TopDocs对象
-        //参数1:查询对象 参数2:查询结果返回的最大记录数
-//        TopDocs topDocs = indexSearcher.search(query, 10);
-
-
-        // 使用的分词器
-        Analyzer analyzer =  new IKAnalyzer(true);
-        // 要搜索的字段
-        String filedName = "content";
-        // 查询生成器(解析输入生成Query查询对象)
-        QueryParser parser = new QueryParser(filedName, analyzer);
-        // 通过parse解析输入(分词),生成query对象
-        Query query = parser.parse("2023-04-14");
-
-
-
-        TopDocs topDocs = indexSearcher.search(query,2);
-
-        //6、取查询结果的总记录数
-        System.out.println("查询总记录数:" + topDocs.totalHits);
-        //7、取文档列表
-        ScoreDoc[] scoreDocs = topDocs.scoreDocs;
-        //8、打印文档中的内容
-        for (ScoreDoc doc : scoreDocs) {
-            //取文档id
-            int docId = doc.doc;
-
-
-            //根据id取文档对象
-            Document document = indexSearcher.doc(docId);
-            System.out.println(document.get("name"));
-            System.out.println(document.get("path"));
-            System.out.println(document.get("size"));
-            System.out.println(document.get("content"));
-        }
-        //9、关闭IndexReader对象
-        indexReader.close();
-    }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java b/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java
deleted file mode 100644
index bd2783b..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org;
-
-import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.*;
-import org.apache.lucene.queryparser.classic.QueryParser;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.highlight.Highlighter;
-import org.apache.lucene.search.highlight.QueryScorer;
-import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
-import org.wltea.analyzer.lucene.IKAnalyzer;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.List;
-
-public class TestLucene {
-
-	public static void main(String[] args) throws Exception {
-		// 1. 准备中文分词器
-		IKAnalyzer analyzer = new IKAnalyzer();
-
-		// 2. 索引
-		List<String> productNames = new ArrayList<>();
-		productNames.add("飞利浦led灯泡e27螺口暖白球泡灯家用照明超亮节能灯泡转色温灯泡");
-		productNames.add("飞利浦led灯泡e14螺口蜡烛灯泡3W尖泡拉尾节能灯泡暖黄光源Lamp");
-		productNames.add("雷士照明 LED灯泡 e27大螺口节能灯3W球泡灯 Lamp led节能灯泡");
-		productNames.add("飞利浦 led灯泡 e27螺口家用3w暖白球泡灯节能灯5W灯泡LED单灯7w");
-		productNames.add("飞利浦led小球泡e14螺口4.5w透明款led节能灯泡照明光源lamp单灯");
-		productNames.add("飞利浦蒲公英护眼台灯工作学习阅读节能灯具30508带光源");
-		productNames.add("欧普照明led灯泡蜡烛节能灯泡e14螺口球泡灯超亮照明单灯光源");
-		productNames.add("欧普照明led灯泡节能灯泡超亮光源e14e27螺旋螺口小球泡暖黄家用");
-		productNames.add("聚欧普照明led灯泡节能灯泡e27螺口球泡家用led照明单灯超亮光源");		
-		Directory index = createIndex(analyzer, productNames);
-
-		// 3. 查询器
-		String keyword = "护眼带光源";
-		Query query = new QueryParser("name", analyzer).parse(keyword);
-		
-
-		// 4. 搜索
-		IndexReader reader = DirectoryReader.open(index);
-		IndexSearcher searcher = new IndexSearcher(reader);
-		int numberPerPage = 1000;
-		System.out.printf("当前一共有%d条数据%n",productNames.size());
-		System.out.printf("查询关键字是:\"%s\"%n",keyword);
-		ScoreDoc[] hits = searcher.search(query, numberPerPage).scoreDocs;
-
-		// 5. 显示查询结果
-		showSearchResults(searcher, hits, query, analyzer);
-		// 6. 关闭查询
-		reader.close();
-	}
-
-	private static void showSearchResults(IndexSearcher searcher, ScoreDoc[] hits, Query query, IKAnalyzer analyzer)
-			throws Exception {
-		System.out.println("找到 " + hits.length + " 个命中.");
-		System.out.println("序号\t匹配度得分\t结果");
-
-		SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<span style='color:red'>", "</span>");
-        Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query));
-
-		for (int i = 0; i < hits.length; ++i) {
-			ScoreDoc scoreDoc= hits[i];
-			int docId = scoreDoc.doc;
-			Document d = searcher.doc(docId);
-			List<IndexableField> fields = d.getFields();
-			System.out.print((i + 1));
-			System.out.print("\t" + scoreDoc.score);
-			for (IndexableField f : fields) {
-	            TokenStream tokenStream = analyzer.tokenStream(f.name(), new StringReader(d.get(f.name())));
-	            String fieldContent = highlighter.getBestFragment(tokenStream, d.get(f.name()));				
-				System.out.print("\t" + fieldContent);
-			}
-			System.out.println("<br>");
-		}
-	}
-
-	private static Directory createIndex(IKAnalyzer analyzer, List<String> products) throws IOException {
-		Directory index = new RAMDirectory();
-		IndexWriterConfig config = new IndexWriterConfig(analyzer);
-		IndexWriter writer = new IndexWriter(index, config);
-
-		for (String name : products) {
-			addDoc(writer, name);
-		}
-		writer.close();
-		return index;
-	}
-
-	private static void addDoc(IndexWriter w, String name) throws IOException {
-		Document doc = new Document();
-		doc.add(new TextField("name", name, Field.Store.YES));
-		w.addDocument(doc);
-	}
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java
index de0a491..70ed73d 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java
@@ -22,9 +22,6 @@ public  class LuceneDefaultAppender extends  UnsynchronizedAppenderBase<ILogging
         Document document = new Document();
         document.add(new StringField("status_code", "01", Field.Store.YES));
 
-
-        System.out.println("123");
-
     }
 
 }
diff --git a/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
index bc9932f..7f6c752 100644
--- a/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
+++ b/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
@@ -21,7 +21,9 @@ https://juejin.cn/post/6844903775631572999
     <include resource="log/XgAgvDeviceDriver.xml"/>
 
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
+        <withJansi>true</withJansi>
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+<!--        <encoder>-->
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
@@ -40,7 +42,9 @@ https://juejin.cn/post/6844903775631572999
             <!--所有日志最多占多大容量-->
             <totalSizeCap>20GB</totalSizeCap>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+<!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
         </encoder>
@@ -48,8 +52,9 @@ https://juejin.cn/post/6844903775631572999
     </appender>
 
     <!--异步到文件-->
-    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
-        <discardingThreshold>0</discardingThreshold>
+<!--    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">-->
+    <appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
+    <discardingThreshold>0</discardingThreshold>
         <queueSize>500</queueSize>
         <appender-ref ref="FILE"/>
     </appender>