Selaa lähdekoodia

异步调用适配

mxd 4 vuotta sitten
vanhempi
sitoutus
37dd3189c9

+ 1 - 1
src/main/java/org/ssssssss/magicapi/config/WebUIController.java

@@ -356,7 +356,7 @@ public class WebUIController {
 					});
 					context.onStart(() -> {
 						RequestContext.setRequestAttribute(servletRequest, response);
-						MDC.put(MagicLoggerContext.MAGIC_CONSOLE_SESSION, sessionId.toString());
+						MagicLoggerContext.SESSION.set(sessionId.toString());
 						logger.info("Create Console Session : {}", sessionId);
 					});
 				}

+ 4 - 4
src/main/java/org/ssssssss/magicapi/logging/MagicLoggerContext.java

@@ -11,10 +11,10 @@ public interface MagicLoggerContext {
 
 	String LOGGER_NAME = "MagicAPI";
 
-	String MAGIC_CONSOLE_SESSION = "MagicConsoleSession";
-
 	Map<String, SseEmitter> emitterMap = new ConcurrentHashMap<>();
 
+	ThreadLocal<String> SESSION = new InheritableThreadLocal<>();
+
 	/**
 	 * 创建sseEmitter推送
 	 * @param sessionId	会话id
@@ -31,7 +31,7 @@ public interface MagicLoggerContext {
 	 */
 	static void remove(String sessionId){
 		SseEmitter sseEmitter = emitterMap.remove(sessionId);
-		MDC.remove(MAGIC_CONSOLE_SESSION);
+		SESSION.remove();
 		if(sseEmitter != null){
 			try {
 				sseEmitter.send(SseEmitter.event().data(sessionId).name("close"));
@@ -47,7 +47,7 @@ public interface MagicLoggerContext {
 	 */
 	default void println(LogInfo logInfo){
 		// 从MDC中获取SessionId
-		String sessionId = MDC.get(MAGIC_CONSOLE_SESSION);
+		String sessionId = SESSION.get();
 		if(sessionId != null){
 			SseEmitter sseEmitter = emitterMap.get(sessionId);
 			if(sseEmitter != null){