diff --git a/epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml b/epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml
index fc97e8f1c9..ab8ee06fa8 100644
--- a/epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml
+++ b/epmet-admin/epmet-admin-server/src/main/resources/logback-spring.xml
@@ -33,7 +33,7 @@
${log.path}/debug.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -60,7 +60,7 @@
${log.path}/info.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -87,7 +87,7 @@
${log.path}/warn.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -113,7 +113,7 @@
${log.path}/error.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
diff --git a/epmet-auth/src/main/resources/logback-spring.xml b/epmet-auth/src/main/resources/logback-spring.xml
index 0152e72505..6cc55ee386 100644
--- a/epmet-auth/src/main/resources/logback-spring.xml
+++ b/epmet-auth/src/main/resources/logback-spring.xml
@@ -35,7 +35,7 @@
${log.path}/debug.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -62,7 +62,7 @@
${log.path}/info.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -89,7 +89,7 @@
${log.path}/warn.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
@@ -115,7 +115,7 @@
${log.path}/error.log
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%thread] %-5level %logger{50} - %msg%n
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n
UTF-8
diff --git a/epmet-cloud-generator/pom.xml b/epmet-cloud-generator/pom.xml
index 107e07be28..9077dca049 100644
--- a/epmet-cloud-generator/pom.xml
+++ b/epmet-cloud-generator/pom.xml
@@ -24,7 +24,7 @@
2.6
2.5
1.10
- 1.2.45
+ 1.2.79
1.7
5.1.38
4.0
diff --git a/epmet-commons/epmet-commons-extapp-auth/pom.xml b/epmet-commons/epmet-commons-extapp-auth/pom.xml
index d6683ae51d..8ff0d46ada 100644
--- a/epmet-commons/epmet-commons-extapp-auth/pom.xml
+++ b/epmet-commons/epmet-commons-extapp-auth/pom.xml
@@ -20,7 +20,7 @@
4.6.1
4.4.0
2.9.9
- 1.2.60
+ 1.2.79
2.8.6
1.11.3
1.18.4
diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml
index 31e2276fc4..c551a68db1 100644
--- a/epmet-commons/epmet-commons-tools/pom.xml
+++ b/epmet-commons/epmet-commons-tools/pom.xml
@@ -20,7 +20,7 @@
4.6.1
4.4.0
2.9.9
- 1.2.60
+ 1.2.79
2.8.6
1.11.3
1.18.4
@@ -161,6 +161,11 @@
2.6.0
compile
+
+ com.alibaba
+ transmittable-thread-local
+ 2.12.4
+
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
index 3321091b4f..085edda60f 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
@@ -64,9 +64,9 @@ public abstract class BaseRequestLogAspect {
Map requestHeaders = getRequestHeaders(request);
// 将当前线程名称设置为事务流水号
- if (!StringUtils.isEmpty(transactionSerial)) {
- Thread.currentThread().setName(transactionSerial);
- }
+// if (!StringUtils.isEmpty(transactionSerial)) {
+// Thread.currentThread().setName(transactionSerial);
+// }
Object result;
LocalDateTime startTime = LocalDateTime.now();
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java
index 2778f3c9ef..83c4758a63 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java
@@ -1,15 +1,15 @@
package com.epmet.commons.tools.config;
+import com.alibaba.ttl.threadpool.TtlExecutors;
+import org.slf4j.MDC;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.RejectedExecutionHandler;
-import java.util.concurrent.ThreadPoolExecutor;
+import java.util.Map;
+import java.util.concurrent.*;
/**
* 线程池配置类
@@ -62,6 +62,20 @@ public class AsyncConfig {
executor.setThreadNamePrefix(threadNamePrefix);
executor.setRejectedExecutionHandler(getRejectedExecutionHandler(rejectedExecutionHandler)); //对拒绝task的处理策略
executor.setKeepAliveSeconds(keepAliveSeconds);
+ // 设置装饰器,使用MDC将runnable进行装饰,实现日志上下文传递到子线程
+ executor.setTaskDecorator((Runnable r) -> {
+ Map copyOfContextMap = MDC.getCopyOfContextMap();
+ return () -> {
+ try {
+ if (copyOfContextMap != null && copyOfContextMap.size() > 0) {
+ MDC.setContextMap(copyOfContextMap);
+ }
+ r.run();
+ } finally {
+ MDC.clear();
+ }
+ };
+ });
executor.initialize();
return executor;
}
@@ -69,7 +83,7 @@ public class AsyncConfig {
@Bean
public ExecutorService executorService() {
ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor();
- return executor.getThreadPoolExecutor();
+ return TtlExecutors.getTtlExecutorService(executor.getThreadPoolExecutor());
}
/**
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
index 9061c2e8d3..40d69ebcf4 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ThreadLocalConstant.java
@@ -22,8 +22,4 @@ public class ThreadLocalConstant {
*/
public static final ThreadLocal requestParam = new ThreadLocal();
- /**
- * 可被子线程继承的,追加的request headers
- */
- public static final InheritableThreadLocal