diff --git a/src/main/java/neatlogic/framework/asynchronization/threadlocal/RequestContext.java b/src/main/java/neatlogic/framework/asynchronization/threadlocal/RequestContext.java index 5e1141c352ccdb4d3022cd164a1806b0ae5075af..bfd4a4a401cd3c1157fdcd94a05419b408b136f6 100644 --- a/src/main/java/neatlogic/framework/asynchronization/threadlocal/RequestContext.java +++ b/src/main/java/neatlogic/framework/asynchronization/threadlocal/RequestContext.java @@ -17,6 +17,7 @@ package neatlogic.framework.asynchronization.threadlocal; import neatlogic.framework.dto.healthcheck.SqlAuditVo; import neatlogic.framework.restful.constvalue.RejectSource; +import org.slf4j.MDC; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -118,6 +119,7 @@ public class RequestContext implements Serializable { context.setUrl(_requestContext.getUrl()); context.setLocale(_requestContext.getLocale()); context.setSqlAuditList(_requestContext.getSqlAuditList()); + MDC.put("url", _requestContext.getUrl()); } instance.set(context); return context; @@ -135,6 +137,7 @@ public class RequestContext implements Serializable { context.setLocale(Locale.getDefault()); } } + MDC.put("url", url); return context; } @@ -152,6 +155,7 @@ public class RequestContext implements Serializable { } public void release() { + MDC.remove("url"); instance.remove(); } diff --git a/src/main/java/neatlogic/framework/asynchronization/threadlocal/TenantContext.java b/src/main/java/neatlogic/framework/asynchronization/threadlocal/TenantContext.java index ce4ba8c4aa589b355b634ce18f66d993e99dfb60..f791882030ce08d900acb5e07238260ade62ccb3 100644 --- a/src/main/java/neatlogic/framework/asynchronization/threadlocal/TenantContext.java +++ b/src/main/java/neatlogic/framework/asynchronization/threadlocal/TenantContext.java @@ -21,6 +21,7 @@ import neatlogic.framework.dao.mapper.ModuleMapper; import neatlogic.framework.dto.module.ModuleGroupVo; import neatlogic.framework.dto.module.ModuleVo; import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -59,6 +60,7 @@ public class TenantContext implements Serializable { if (_tenantContext != null) { context.setTenantUuid(_tenantContext.getTenantUuid()); context.setActiveModuleList(_tenantContext.getActiveModuleList()); + MDC.put("tenant", _tenantContext.getTenantUuid()); } instance.set(context); return context; @@ -67,6 +69,7 @@ public class TenantContext implements Serializable { public static TenantContext init(String _tenantUuid) { TenantContext context = new TenantContext(_tenantUuid); instance.set(context); + MDC.put("tenant", _tenantUuid); return context; } @@ -134,6 +137,7 @@ public class TenantContext implements Serializable { activeModuleMap.put(module.getId(), module); } } + MDC.put("tenant", tenantUuid); } return this; } @@ -143,6 +147,7 @@ public class TenantContext implements Serializable { } public void release() { + MDC.remove("tenant"); instance.remove(); } diff --git a/src/main/java/neatlogic/framework/logback/converter/RequestUrlConverter.java b/src/main/java/neatlogic/framework/logback/converter/RequestUrlConverter.java index dafb939aebc069a0763b09089b541cce3f022110..9724a25a070dd26bc6db7161fc726e9023c35adb 100644 --- a/src/main/java/neatlogic/framework/logback/converter/RequestUrlConverter.java +++ b/src/main/java/neatlogic/framework/logback/converter/RequestUrlConverter.java @@ -18,13 +18,18 @@ package neatlogic.framework.logback.converter; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback.classic.spi.ILoggingEvent; import neatlogic.framework.asynchronization.threadlocal.RequestContext; +import org.apache.commons.lang3.StringUtils; + +import java.io.Serializable; +import java.util.Map; /** * logback.xml文件使用,日志中输出请求url * @author linbq * @since 2022/1/19 16:08 **/ -public class RequestUrlConverter extends ClassicConverter { +public class RequestUrlConverter extends ClassicConverter implements Serializable { + /** * The convert method is responsible for extracting data from the event and * storing it for later use by the write method. @@ -35,8 +40,15 @@ public class RequestUrlConverter extends ClassicConverter { public String convert(ILoggingEvent event) { RequestContext requestContext = RequestContext.get(); if (requestContext != null) { + System.out.println("RequestUrlConverter requestContext.getUrl() = " + requestContext.getUrl()); return requestContext.getUrl(); + } else { + Map map = event.getMDCPropertyMap(); + String url = map.get("url"); + if (StringUtils.isNotBlank(url)) { + return url; + } } - return ""; + return StringUtils.EMPTY; } } diff --git a/src/main/java/neatlogic/framework/logback/converter/TenantConverter.java b/src/main/java/neatlogic/framework/logback/converter/TenantConverter.java index df2f66d4b6b56be9f1ee33d6817b4ada63efb3bb..ffbac52ef4de54e7e9588827f2c2d7ae1880c491 100644 --- a/src/main/java/neatlogic/framework/logback/converter/TenantConverter.java +++ b/src/main/java/neatlogic/framework/logback/converter/TenantConverter.java @@ -18,13 +18,18 @@ package neatlogic.framework.logback.converter; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback.classic.spi.ILoggingEvent; import neatlogic.framework.asynchronization.threadlocal.TenantContext; +import org.apache.commons.lang3.StringUtils; + +import java.io.Serializable; +import java.util.Map; /** * logback.xml文件使用,日志中输出租户信息 * @author linbq * @since 2022/1/19 15:12 **/ -public class TenantConverter extends ClassicConverter { +public class TenantConverter extends ClassicConverter implements Serializable { + /** * The convert method is responsible for extracting data from the event and * storing it for later use by the write method. @@ -36,7 +41,14 @@ public class TenantConverter extends ClassicConverter { TenantContext tenantContext = TenantContext.get(); if (tenantContext != null) { return tenantContext.getTenantUuid(); + } else { + Map map = event.getMDCPropertyMap(); + String tenant = map.get("tenant"); + if (StringUtils.isNotBlank(tenant)) { + return tenant; + } } - return ""; + return StringUtils.EMPTY; } + }