优化log模块日志显示,将类名改为接口+路径

This commit is contained in:
mxd
2021-09-26 21:40:39 +08:00
parent ff852976ca
commit 09deb5ff57
5 changed files with 14 additions and 3 deletions

View File

@@ -59,9 +59,9 @@ import org.ssssssss.magicapi.utils.ClassScanner;
import org.ssssssss.magicapi.utils.Mapping;
import org.ssssssss.magicapi.utils.PathUtils;
import org.ssssssss.script.MagicResourceLoader;
import org.ssssssss.script.MagicScript;
import org.ssssssss.script.MagicScriptEngine;
import org.ssssssss.script.exception.MagicScriptRuntimeException;
import org.ssssssss.script.functions.DynamicModuleImport;
import org.ssssssss.script.functions.ExtensionMethod;
import org.ssssssss.script.parsing.ast.statement.AsyncCall;
import org.ssssssss.script.reflection.JavaReflection;
@@ -459,7 +459,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
}).orElse(null)
);
logger.info("注册模块:{} -> {}", "log", Logger.class);
MagicResourceLoader.addModule("log", LoggerFactory.getLogger(MagicScript.class));
MagicResourceLoader.addModule("log", (DynamicModuleImport) context -> LoggerFactory.getLogger(context.getScriptName()));
List<String> importModules = properties.getAutoImportModuleList();
logger.info("注册模块:{} -> {}", "env", EnvModule.class);
MagicResourceLoader.addModule("env", new EnvModule(environment));

View File

@@ -39,12 +39,14 @@ public class MagicFunctionManager {
public void registerFunctionLoader() {
MagicResourceLoader.addFunctionLoader((path) -> {
FunctionInfo info = mappings.get(path);
String scriptName = groupServiceProvider.getScriptName(info.getId(), info.getName(), info.getPath());
if (info != null) {
List<Parameter> parameters = info.getParameters();
return (Function<Object[], Object>) objects -> {
MagicScriptContext context = MagicScriptContext.get();
try {
MagicScriptContext functionContext = new MagicScriptContext(context.getRootVariables());
functionContext.setScriptName(scriptName);
MagicScriptContext.set(functionContext);
if (objects != null) {
for (int i = 0, len = objects.length, size = parameters.size(); i < len && i < size; i++) {

View File

@@ -353,6 +353,8 @@ public class RequestHandler extends MagicController {
if (wrap != null && StringUtils.isNotBlank(wrap.toString())) {
context.set(wrap.toString(), requestEntity.getParameters());
}
ApiInfo info = requestEntity.getApiInfo();
context.setScriptName(configuration.getGroupServiceProvider().getScriptName(info.getGroupId(), info.getName(), info.getPath()));
context.putMapIntoContext(requestEntity.getParameters());
context.putMapIntoContext(requestEntity.getPathVariables());
context.set(VAR_NAME_COOKIE, new CookieContext(requestEntity.getRequest()));

View File

@@ -3,9 +3,9 @@ package org.ssssssss.magicapi.provider;
import org.ssssssss.magicapi.adapter.Resource;
import org.ssssssss.magicapi.model.Group;
import org.ssssssss.magicapi.model.TreeNode;
import org.ssssssss.magicapi.utils.PathUtils;
import java.util.List;
import java.util.Set;
public interface GroupServiceProvider {
@@ -67,4 +67,8 @@ public interface GroupServiceProvider {
Resource getGroupResource(String groupId);
List<String> getGroupsWithoutGroups(List<String> groupIds);
default String getScriptName(String groupId, String name, String path) {
return PathUtils.replaceSlash("/" + getFullName(groupId) + "/" + name) + "(" + PathUtils.replaceSlash(getFullPath(groupId) + "/" + path) + ")";
}
}

View File

@@ -121,6 +121,7 @@ public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstant
MagicScriptContext newContext = new MagicScriptContext();
Map<String, Object> varMap = new LinkedHashMap<>(context.getRootVariables());
varMap.putAll(variables.getVariables());
newContext.setScriptName(groupServiceProvider.getScriptName(info.getId(), info.getName(), info.getPath()));
newContext.putMapIntoContext(varMap);
MagicScriptContext.set(newContext);
try {
@@ -145,6 +146,7 @@ public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstant
final MagicScriptContext magicScriptContext = MagicScriptContext.get();
MagicScriptContext scriptContext = new MagicScriptContext();
scriptContext.setScriptName(groupServiceProvider.getScriptName(info.getGroupId(), info.getName(), info.getPath()));
scriptContext.putMapIntoContext(context);
SimpleScriptContext simpleScriptContext = new SimpleScriptContext();
simpleScriptContext.setAttribute(MagicScript.CONTEXT_ROOT, scriptContext, ScriptContext.ENGINE_SCOPE);
@@ -189,6 +191,7 @@ public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstant
throw new MagicServiceException(String.format("找不到对应函数 [%s]", path));
}
MagicScriptContext scriptContext = new MagicScriptContext(context);
scriptContext.setScriptName(groupServiceProvider.getScriptName(functionInfo.getGroupId(), functionInfo.getName(), functionInfo.getPath()));
scriptContext.putMapIntoContext(context);
SimpleScriptContext simpleScriptContext = new SimpleScriptContext();
simpleScriptContext.setAttribute(MagicScript.CONTEXT_ROOT, scriptContext, ScriptContext.ENGINE_SCOPE);