From 5b7e41ef68d5640619a4fa81294ed80d6c9294a8 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 3 Jul 2025 19:08:19 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E5=92=8C=E4=B8=8B=E8=BD=BD=E6=97=A5=E5=BF=97=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1444848047980544]查看和下载日志页面 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1444848047980544 --- .../api/logger/changeLoggerLevelApi.java | 76 ++++++++++++++++--- 1 file changed, 66 insertions(+), 10 deletions(-) diff --git a/src/main/java/neatlogic/module/tenant/api/logger/changeLoggerLevelApi.java b/src/main/java/neatlogic/module/tenant/api/logger/changeLoggerLevelApi.java index 32ac4eef..4245027d 100644 --- a/src/main/java/neatlogic/module/tenant/api/logger/changeLoggerLevelApi.java +++ b/src/main/java/neatlogic/module/tenant/api/logger/changeLoggerLevelApi.java @@ -18,18 +18,36 @@ package neatlogic.module.tenant.api.logger; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; +import neatlogic.framework.asynchronization.threadlocal.RequestContext; +import neatlogic.framework.common.config.Config; import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.exception.core.ApiRuntimeException; +import neatlogic.framework.exception.server.ServerHostIsBankException; +import neatlogic.framework.exception.server.ServerNotFoundException; +import neatlogic.framework.heartbeat.dao.mapper.ServerMapper; +import neatlogic.framework.heartbeat.dto.ServerClusterVo; +import neatlogic.framework.integration.authentication.enums.AuthenticateType; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.util.HttpRequestUtil; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Objects; + @Component @OperationType(type = OperationTypeEnum.UPDATE) public class changeLoggerLevelApi extends PrivateApiComponentBase { + @Resource + private ServerMapper serverMapper; + @Override public String getToken() { return "logger/updatelevel"; @@ -45,17 +63,55 @@ public class changeLoggerLevelApi extends PrivateApiComponentBase { return null; } - @Input({@Param(name = "level", type = ApiParamType.ENUM, rule = "ALL,TRACE,DEBUG,INFO,WARN,ERROR,OFF", - isRequired = true, desc = "日志级别")}) - @Output({@Param(type = ApiParamType.STRING, desc = "当前日志级别")}) + @Input({ + @Param(name = "serverId", type = ApiParamType.INTEGER, isRequired = true, desc = "term.framework.serverid"), + @Param(name = "level", type = ApiParamType.ENUM, rule = "ALL,TRACE,DEBUG,INFO,WARN,ERROR,OFF", isRequired = true, desc = "日志级别") + }) + @Output({ + @Param(type = ApiParamType.STRING, desc = "当前日志级别") + }) @Description(desc = "修改日志级别接口") @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - String level = jsonObj.getString("level"); - LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory(); - ch.qos.logback.classic.Logger logger = loggerContext.getLogger("neatlogic"); - logger.setLevel(Level.toLevel(level)); - return logger.getLevel().levelStr; + public Object myDoService(JSONObject paramObj) throws Exception { + Integer serverId = paramObj.getInteger("serverId"); + if (Objects.equals(serverId, Config.SCHEDULE_SERVER_ID)) { + String level = paramObj.getString("level"); + LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); + ch.qos.logback.classic.Logger logger = loggerContext.getLogger("neatlogic"); + logger.setLevel(Level.toLevel(level)); + return logger.getLevel().levelStr; + } else { + ServerClusterVo serverClusterVo = serverMapper.getServerByServerId(serverId); + if (serverClusterVo != null) { + String host = serverClusterVo.getHost(); + if (StringUtils.isNotBlank(host)) { + HttpServletRequest request = RequestContext.get().getRequest(); + String url = host + request.getRequestURI(); + HttpRequestUtil httpRequestUtil = HttpRequestUtil.post(url) + .setPayload(paramObj.toJSONString()) + .setAuthType(AuthenticateType.BUILDIN) + .setConnectTimeout(5000) + .setReadTimeout(5000) + .sendRequest(); + String error = httpRequestUtil.getError(); + if (StringUtils.isNotBlank(error)) { + throw new ApiRuntimeException(error); + } + JSONObject resultJson = httpRequestUtil.getResultJson(); + if (MapUtils.isNotEmpty(resultJson)) { + String status = resultJson.getString("Status"); + if (!"OK".equals(status)) { + throw new RuntimeException(resultJson.getString("Message")); + } + return resultJson.getJSONObject("Return"); + } + } else { + throw new ServerHostIsBankException(serverId); + } + } else { + throw new ServerNotFoundException(serverId); + } + return StringUtils.EMPTY; + } } - } -- Gitee